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..e339e537b 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,12 @@ 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 + +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 diff --git a/README.md b/README.md index b2b3f4b76..d67d17601 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,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: diff --git a/setup.py b/setup.py index 8d9bb00db..a1714f6aa 100644 --- a/setup.py +++ b/setup.py @@ -1,196 +1,213 @@ #!/usr/bin/env python -import sys import os import os.path +import sys import warnings try: - from setuptools import setup, Extension - from setuptools.dist import Distribution - requires = { - "install_requires": ["numpy"], - "setup_requires": ["numpy"] - } + from setuptools import Extension, setup + from setuptools.dist import Distribution + + requires = {"install_requires": ["numpy"], "setup_requires": ["numpy"]} except ImportError: - from distutils.core import setup - from distutils.dist import Distribution - from distutils.extension import Extension - requires = {"requires": ["numpy"]} + from distutils.core import setup + from distutils.extension import Extension + + requires = {"requires": ["numpy"]} + platform_supported = False -lib_talib_name = 'ta-lib' # the name as of TA-Lib 0.6.1 - -if any(s in sys.platform for s in ['darwin', 'linux', 'bsd', 'sunos']): - platform_supported = True - include_dirs = [ - '/usr/include', - '/usr/local/include', - '/opt/include', - '/opt/local/include', - '/opt/homebrew/include', - '/opt/homebrew/opt/ta-lib/include', - ] - 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', - ] +lib_talib_name = "ta-lib" # the name as of TA-Lib 0.6.1 +lib_talib_static_lib = "" # static C library, such as '/usr/lib/libta-lib.a' + +if any(s in sys.platform for s in ["darwin", "linux", "bsd", "sunos"]): + platform_supported = True + include_dirs = [ + "/usr/include", + "/usr/local/include", + "/opt/include", + "/opt/local/include", + "/opt/homebrew/include", + "/opt/homebrew/opt/ta-lib/include", + ] + 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", + ] elif sys.platform == "win32": - platform_supported = True - lib_talib_name = 'ta-lib-static' - include_dirs = [ - r"c:\ta-lib\c\include", - r"c:\Program Files\TA-Lib\include", - r"c:\Program Files (x86)\TA-Lib\include", - ] - library_dirs = [ - r"c:\ta-lib\c\lib", - r"c:\Program Files\TA-Lib\lib", - r"c:\Program Files (x86)\TA-Lib\lib", - ] - -if 'TA_INCLUDE_PATH' in os.environ: - include_dirs = os.environ['TA_INCLUDE_PATH'].split(os.pathsep) - -if 'TA_LIBRARY_PATH' in os.environ: - library_dirs = os.environ['TA_LIBRARY_PATH'].split(os.pathsep) + platform_supported = True + lib_talib_name = "ta-lib-static" + include_dirs = [ + r"c:\ta-lib\c\include", + r"c:\Program Files\TA-Lib\include", + r"c:\Program Files (x86)\TA-Lib\include", + ] + library_dirs = [ + r"c:\ta-lib\c\lib", + r"c:\Program Files\TA-Lib\lib", + r"c:\Program Files (x86)\TA-Lib\lib", + ] + +if "TA_INCLUDE_PATH" in os.environ: + include_dirs = os.environ["TA_INCLUDE_PATH"].split(os.pathsep) + +if "TA_LIBRARY_PATH" in os.environ: + library_dirs = os.environ["TA_LIBRARY_PATH"].split(os.pathsep) + +if "TA_LINK_STATIC" in os.environ: + for base in library_dirs: + fname = f"{base}/lib{lib_talib_name}.a" + if os.path.exists(fname): + lib_talib_static_lib = fname + print(f"Using static library: {lib_talib_static_lib}") + break + if not platform_supported: - raise NotImplementedError(sys.platform) + raise NotImplementedError(sys.platform) try: - from Cython.Distutils import build_ext as cython_build_ext - has_cython = True + from Cython.Distutils import build_ext as cython_build_ext + + has_cython = True except ImportError: - has_cython = False + has_cython = False for path in library_dirs: - try: - files = os.listdir(path) - if any(lib_talib_name in f for f in files): - break - except OSError: - pass + try: + files = os.listdir(path) + if any(lib_talib_name in f for f in files): + break + except OSError: + pass else: - warnings.warn('Cannot find ta-lib library, installation may fail.') + warnings.warn("Cannot find ta-lib library, installation may fail.") class LazyBuildExtCommandClass(dict): - """ - Lazy command class that defers operations requiring Cython and numpy until - they've actually been downloaded and installed by setup_requires. - """ - - def __contains__(self, key): - return (key == 'build_ext' or - super(LazyBuildExtCommandClass, self).__contains__(key)) - - def __setitem__(self, key, value): - if key == 'build_ext': - raise AssertionError("build_ext overridden!") - super(LazyBuildExtCommandClass, self).__setitem__(key, value) - - def __getitem__(self, key): - global include_dirs - if key != 'build_ext': - return super(LazyBuildExtCommandClass, self).__getitem__(key) - - import numpy - if has_cython: - org_build_ext = cython_build_ext - else: - from setuptools.command.build_ext import build_ext as org_build_ext - - # Cython_build_ext isn't a new-style class in Py2. - class build_ext(org_build_ext, object): - """ - Custom build_ext command that lazily adds numpy's include_dir to - extensions. - """ - - def build_extensions(self): - """ - Lazily append numpy's include directory to Extension includes. - This is done here rather than at module scope because setup.py - may be run before numpy has been installed, in which case - importing numpy and calling `numpy.get_include()` will fail. - """ - numpy_incl = numpy.get_include() - for ext in self.extensions: - ext.include_dirs.append(numpy_incl) - - super(build_ext, self).build_extensions() - - return build_ext + """ + Lazy command class that defers operations requiring Cython and numpy until + they've actually been downloaded and installed by setup_requires. + """ + + def __contains__(self, key): + return key == "build_ext" or super(LazyBuildExtCommandClass, self).__contains__(key) + + def __setitem__(self, key, value): + if key == "build_ext": + raise AssertionError("build_ext overridden!") + super(LazyBuildExtCommandClass, self).__setitem__(key, value) + + def __getitem__(self, key): + global include_dirs + if key != "build_ext": + return super(LazyBuildExtCommandClass, self).__getitem__(key) + + import numpy + + if has_cython: + org_build_ext = cython_build_ext + else: + from setuptools.command.build_ext import build_ext as org_build_ext + + # Cython_build_ext isn't a new-style class in Py2. + class build_ext(org_build_ext, object): + """ + Custom build_ext command that lazily adds numpy's include_dir to + extensions. + """ + + def build_extensions(self): + """ + Lazily append numpy's include directory to Extension includes. + This is done here rather than at module scope because setup.py + may be run before numpy has been installed, in which case + importing numpy and calling `numpy.get_include()` will fail. + """ + numpy_incl = numpy.get_include() + for ext in self.extensions: + ext.include_dirs.append(numpy_incl) + + super(build_ext, self).build_extensions() + + return build_ext cmdclass = LazyBuildExtCommandClass() ext_modules = [ - Extension( - 'talib._ta_lib', - ['talib/_ta_lib.pyx' if has_cython else 'talib/_ta_lib.c'], - include_dirs=include_dirs, - library_dirs=library_dirs, - libraries=[lib_talib_name], - runtime_library_dirs=[] if sys.platform == 'win32' else library_dirs) + 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_static_lib) == 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 os import path + this_directory = path.abspath(path.dirname(__file__)) -with open(path.join(this_directory, 'README.md'), encoding='utf-8') as f: - long_description = f.read() +with open(path.join(this_directory, "README.md"), encoding="utf-8") as f: + long_description = f.read() setup( - name='TA-Lib', - version='0.6.3', - description='Python wrapper for TA-Lib', - long_description=long_description, - long_description_content_type='text/markdown', - author='John Benediktsson', - author_email='mrjbq7@gmail.com', - url='http://github.com/ta-lib/ta-lib-python', - download_url='https://github.com/ta-lib/ta-lib-python/releases', - license='BSD', - classifiers=[ - "License :: OSI Approved :: BSD License", - "Development Status :: 5 - Production/Stable", - "Operating System :: Unix", - "Operating System :: POSIX", - "Operating System :: MacOS :: MacOS X", - "Operating System :: Microsoft :: Windows", - "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13", - "Programming Language :: Cython", - "Topic :: Office/Business :: Financial", - "Topic :: Scientific/Engineering :: Mathematics", - "Intended Audience :: Developers", - "Intended Audience :: Science/Research", - "Intended Audience :: Financial and Insurance Industry", - ], - packages=['talib'], - ext_modules=ext_modules, - package_data={ 'talib': ['_ta_lib.pyi', 'py.typed'], }, - cmdclass=cmdclass, - **requires) + name="TA-Lib", + version="0.6.3", + description="Python wrapper for TA-Lib", + long_description=long_description, + long_description_content_type="text/markdown", + author="John Benediktsson", + author_email="mrjbq7@gmail.com", + url="http://github.com/ta-lib/ta-lib-python", + download_url="https://github.com/ta-lib/ta-lib-python/releases", + license="BSD", + classifiers=[ + "License :: OSI Approved :: BSD License", + "Development Status :: 5 - Production/Stable", + "Operating System :: Unix", + "Operating System :: POSIX", + "Operating System :: MacOS :: MacOS X", + "Operating System :: Microsoft :: Windows", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Cython", + "Topic :: Office/Business :: Financial", + "Topic :: Scientific/Engineering :: Mathematics", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "Intended Audience :: Financial and Insurance Industry", + ], + packages=["talib"], + ext_modules=ext_modules, + package_data={ + "talib": ["_ta_lib.pyi", "py.typed"], + }, + cmdclass=cmdclass, + **requires, +) diff --git a/talib/_func.pxi b/talib/_func.pxi index ee3c3eaa4..5c2d2f8e6 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/_ta_lib.c b/talib/_ta_lib.c index 30687ec9c..f5e90d823 100644 --- a/talib/_ta_lib.c +++ b/talib/_ta_lib.c @@ -1,4 +1,40 @@ -/* Generated by Cython 3.0.11 */ +/* Generated by Cython 3.0.10 */ + +/* BEGIN: Cython Metadata +{ + "distutils": { + "depends": [ + "/home/jia/.virtualenvs/qtf/lib/python3.12/site-packages/numpy/_core/include/numpy/arrayobject.h", + "/home/jia/.virtualenvs/qtf/lib/python3.12/site-packages/numpy/_core/include/numpy/arrayscalars.h", + "/home/jia/.virtualenvs/qtf/lib/python3.12/site-packages/numpy/_core/include/numpy/ndarrayobject.h", + "/home/jia/.virtualenvs/qtf/lib/python3.12/site-packages/numpy/_core/include/numpy/ndarraytypes.h", + "/home/jia/.virtualenvs/qtf/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" + ], + "include_dirs": [ + "c-ta-lib/include", + "/home/jia/.virtualenvs/qtf/lib/python3.12/site-packages/numpy/_core/include" + ], + "libraries": [ + "ta-lib" + ], + "library_dirs": [ + "c-ta-lib/lib" + ], + "name": "talib._ta_lib", + "runtime_library_dirs": [ + "c-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 @@ -24,10 +60,10 @@ #else #define __PYX_EXTRA_ABI_MODULE_NAME "" #endif -#define CYTHON_ABI "3_0_11" __PYX_EXTRA_ABI_MODULE_NAME +#define CYTHON_ABI "3_0_10" __PYX_EXTRA_ABI_MODULE_NAME #define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI #define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "." -#define CYTHON_HEX_VERSION 0x03000BF0 +#define CYTHON_HEX_VERSION 0x03000AF0 #define CYTHON_FUTURE_DIVISION 0 #include #ifndef offsetof @@ -1219,14 +1255,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 @@ -1523,38 +1555,157 @@ static const char *__pyx_f[] = { /* #### Code section: numeric_typedefs ### */ +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":787 + * # 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":788 + * + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":789 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":790 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":794 + * #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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":795 + * + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":796 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":797 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":801 + * #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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":802 + * + * 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; +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":809 + * ctypedef double complex complex128_t + * + * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< + * ctypedef npy_ulonglong ulonglong_t + * + */ typedef npy_longlong __pyx_t_5numpy_longlong_t; +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":810 + * + * ctypedef npy_longlong longlong_t + * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< + * + * ctypedef npy_intp intp_t + */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":812 + * ctypedef npy_ulonglong ulonglong_t + * + * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< + * ctypedef npy_uintp uintp_t + * + */ typedef npy_intp __pyx_t_5numpy_intp_t; +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":813 + * + * ctypedef npy_intp intp_t + * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< + * + * ctypedef npy_double float_t + */ typedef npy_uintp __pyx_t_5numpy_uintp_t; +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":815 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":816 + * + * ctypedef npy_double float_t + * ctypedef npy_double double_t # <<<<<<<<<<<<<< + * ctypedef npy_longdouble longdouble_t + * + */ typedef npy_double __pyx_t_5numpy_double_t; +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":817 + * 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 */ @@ -1597,8 +1748,22 @@ static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_fro /*--- Type declarations ---*/ +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1113 + * + * # 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1114 + * # 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 ### */ @@ -1999,7 +2164,11 @@ static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *k static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /* HasAttr.proto */ +#if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1 +#define __Pyx_HasAttr(o, n) PyObject_HasAttrWithError(o, n) +#else static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); +#endif /* DictGetItem.proto */ #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY @@ -2219,22 +2388,22 @@ static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObje int is_list, int wraparound, int boundscheck); /* TypeImport.proto */ -#ifndef __PYX_HAVE_RT_ImportType_proto_3_0_11 -#define __PYX_HAVE_RT_ImportType_proto_3_0_11 +#ifndef __PYX_HAVE_RT_ImportType_proto_3_0_10 +#define __PYX_HAVE_RT_ImportType_proto_3_0_10 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L #include #endif #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L -#define __PYX_GET_STRUCT_ALIGNMENT_3_0_11(s) alignof(s) +#define __PYX_GET_STRUCT_ALIGNMENT_3_0_10(s) alignof(s) #else -#define __PYX_GET_STRUCT_ALIGNMENT_3_0_11(s) sizeof(void*) +#define __PYX_GET_STRUCT_ALIGNMENT_3_0_10(s) sizeof(void*) #endif -enum __Pyx_ImportType_CheckSize_3_0_11 { - __Pyx_ImportType_CheckSize_Error_3_0_11 = 0, - __Pyx_ImportType_CheckSize_Warn_3_0_11 = 1, - __Pyx_ImportType_CheckSize_Ignore_3_0_11 = 2 +enum __Pyx_ImportType_CheckSize_3_0_10 { + __Pyx_ImportType_CheckSize_Error_3_0_10 = 0, + __Pyx_ImportType_CheckSize_Warn_3_0_10 = 1, + __Pyx_ImportType_CheckSize_Ignore_3_0_10 = 2 }; -static PyTypeObject *__Pyx_ImportType_3_0_11(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_11 check_size); +static PyTypeObject *__Pyx_ImportType_3_0_10(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_10 check_size); #endif /* IncludeStructmemberH.proto */ @@ -10167,32 +10336,81 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_codeobj__512 __pyx_mstate_global->__pyx_codeobj__512 /* #### Code section: module_code ### */ +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":287 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":288 + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":287 + * + * @property + * cdef inline npy_intp itemsize(self) noexcept nogil: # <<<<<<<<<<<<<< + * return PyDataType_ELSIZE(self) + * + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":291 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":292 + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":291 + * + * @property + * cdef inline npy_intp alignment(self) noexcept nogil: # <<<<<<<<<<<<<< + * return PyDataType_ALIGNMENT(self) + * + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":297 + * # 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; @@ -10200,12 +10418,26 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Desc PyObject *__pyx_t_1; __Pyx_RefNannySetupContext("fields", 1); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":298 + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":297 + * # for this using PyDataType_HASFIELDS. + * @property + * cdef inline object fields(self): # <<<<<<<<<<<<<< + * return PyDataType_FIELDS(self) + * + */ /* function exit code */ __pyx_L0:; @@ -10214,6 +10446,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Desc return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":301 + * + * @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; @@ -10221,12 +10460,26 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr PyObject *__pyx_t_1; __Pyx_RefNannySetupContext("names", 1); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":302 + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":301 + * + * @property + * cdef inline tuple names(self): # <<<<<<<<<<<<<< + * return PyDataType_NAMES(self) + * + */ /* function exit code */ __pyx_L0:; @@ -10235,123 +10488,319 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":308 + * # 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":309 + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":308 + * # 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":312 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":314 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":312 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":324 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":326 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":324 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":329 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":331 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":329 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":334 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":336 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":334 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":339 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":341 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":339 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":344 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":346 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":344 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":349 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":352 + * """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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":349 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":367 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":370 + * """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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":367 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":373 + * + * @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; @@ -10359,12 +10808,26 @@ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArray PyArray_Descr *__pyx_t_1; __Pyx_RefNannySetupContext("descr", 1); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":376 + * """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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":373 + * + * @property + * cdef inline dtype descr(self): # <<<<<<<<<<<<<< + * """Returns an owned reference to the dtype of the array. + * """ + */ /* function exit code */ __pyx_L0:; @@ -10373,71 +10836,183 @@ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArray return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":379 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":382 + * """Returns the number of dimensions in the array. + * """ + * return PyArray_NDIM(self) # <<<<<<<<<<<<<< + * + * @property + */ __pyx_r = PyArray_NDIM(__pyx_v_self); goto __pyx_L0; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":379 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":385 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":390 + * Can return NULL for 0-dimensional arrays. + * """ + * return PyArray_DIMS(self) # <<<<<<<<<<<<<< + * + * @property + */ __pyx_r = PyArray_DIMS(__pyx_v_self); goto __pyx_L0; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":385 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":393 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":397 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":393 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":400 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":403 + * """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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":400 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":406 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":412 + * of `PyArray_DATA()` instead, which returns a 'void*'. + * """ + * return PyArray_BYTES(self) # <<<<<<<<<<<<<< + * + * + */ __pyx_r = PyArray_BYTES(__pyx_v_self); goto __pyx_L0; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":406 + * + * @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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":824 + * 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; @@ -10448,6 +11023,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 1); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":825 + * + * 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, 825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -10455,6 +11037,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":824 + * ctypedef long double complex clongdouble_t + * + * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(1, a) + * + */ /* function exit code */ __pyx_L1_error:; @@ -10467,6 +11056,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":827 + * 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; @@ -10477,6 +11073,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 1); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":828 + * + * 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, 828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -10484,6 +11087,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":827 + * return PyArray_MultiIterNew(1, a) + * + * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(2, a, b) + * + */ /* function exit code */ __pyx_L1_error:; @@ -10496,6 +11106,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":830 + * 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; @@ -10506,6 +11123,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 1); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":831 + * + * 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, 831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -10513,6 +11137,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":830 + * 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:; @@ -10525,6 +11156,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":833 + * 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; @@ -10535,6 +11173,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 1); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":834 + * + * 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, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -10542,6 +11187,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":833 + * 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:; @@ -10554,6 +11206,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":836 + * 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; @@ -10564,6 +11223,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 1); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":837 + * + * 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, 837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -10571,6 +11237,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":836 + * 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:; @@ -10583,6 +11256,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":839 + * 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; @@ -10591,17 +11271,45 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ PyObject *__pyx_t_2; __Pyx_RefNannySetupContext("PyDataType_SHAPE", 1); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":840 + * + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":841 + * cdef inline tuple PyDataType_SHAPE(dtype d): + * if PyDataType_HASSUBARRAY(d): + * return d.subarray.shape # <<<<<<<<<<<<<< + * else: + * return () + */ __Pyx_XDECREF(__pyx_r); __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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":840 + * + * cdef inline tuple PyDataType_SHAPE(dtype d): + * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< + * return d.subarray.shape + * else: + */ } + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":843 + * return d.subarray.shape + * else: + * return () # <<<<<<<<<<<<<< + * + * + */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_empty_tuple); @@ -10609,6 +11317,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ goto __pyx_L0; } + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":839 + * 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:; @@ -10617,6 +11332,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1027 + * 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; @@ -10624,10 +11346,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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1028 + * + * 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); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1029 + * 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, 1029, __pyx_L1_error) + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1027 + * 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; @@ -10636,6 +11379,13 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __pyx_L0:; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1031 + * 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; @@ -10644,22 +11394,64 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 1); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1032 + * + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1033 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1034 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1033 + * cdef inline object get_array_base(ndarray arr): + * base = PyArray_BASE(arr) + * if base is NULL: # <<<<<<<<<<<<<< + * return None + * return base + */ } + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1035 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1031 + * 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:; @@ -10668,6 +11460,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1039 + * # 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; @@ -10685,6 +11484,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { int __pyx_clineno = 0; __Pyx_RefNannySetupContext("import_array", 1); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1040 + * # Cython code. + * cdef inline int import_array() except -1: + * try: # <<<<<<<<<<<<<< + * __pyx_import_array() + * except Exception: + */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign @@ -10694,8 +11500,22 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1041 + * 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, 1041, __pyx_L3_error) + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1040 + * # 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; @@ -10703,6 +11523,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L8_try_end; __pyx_L3_error:; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1042 + * 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); @@ -10711,6 +11538,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1043 + * __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, 1043, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); @@ -10719,6 +11553,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { } goto __pyx_L5_except_error; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1040 + * # 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); @@ -10728,6 +11569,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __pyx_L8_try_end:; } + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1039 + * # 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; @@ -10744,6 +11592,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1045 + * 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; @@ -10761,6 +11616,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { int __pyx_clineno = 0; __Pyx_RefNannySetupContext("import_umath", 1); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1046 + * + * cdef inline int import_umath() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign @@ -10770,8 +11632,22 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1047 + * 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, 1047, __pyx_L3_error) + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1046 + * + * 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; @@ -10779,6 +11655,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L8_try_end; __pyx_L3_error:; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1048 + * 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); @@ -10787,6 +11670,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1049 + * _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, 1049, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); @@ -10795,6 +11685,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { } goto __pyx_L5_except_error; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1046 + * + * 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); @@ -10804,6 +11701,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __pyx_L8_try_end:; } + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1045 + * raise ImportError("numpy._core.multiarray failed to import") + * + * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< + * try: + * _import_umath() + */ /* function exit code */ __pyx_r = 0; @@ -10820,6 +11724,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1051 + * 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; @@ -10837,6 +11748,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { int __pyx_clineno = 0; __Pyx_RefNannySetupContext("import_ufunc", 1); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1052 + * + * cdef inline int import_ufunc() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign @@ -10846,8 +11764,22 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1053 + * 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, 1053, __pyx_L3_error) + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1052 + * + * 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; @@ -10855,6 +11787,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L8_try_end; __pyx_L3_error:; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1054 + * 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); @@ -10863,6 +11802,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1055 + * _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, 1055, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); @@ -10871,6 +11817,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { } goto __pyx_L5_except_error; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1052 + * + * 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); @@ -10880,6 +11833,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __pyx_L8_try_end:; } + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1051 + * raise ImportError("numpy._core.umath failed to import") + * + * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< + * try: + * _import_umath() + */ /* function exit code */ __pyx_r = 0; @@ -10896,71 +11856,183 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { return __pyx_r; } +/* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1058 + * + * + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1070 + * bool + * """ + * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< + * + * + */ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); goto __pyx_L0; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1058 + * + * + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1073 + * + * + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1085 + * bool + * """ + * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< + * + * + */ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); goto __pyx_L0; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1073 + * + * + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1088 + * + * + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1095 + * also needed. That can be found using `get_datetime64_unit`. + * """ + * return (obj).obval # <<<<<<<<<<<<<< + * + * + */ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; goto __pyx_L0; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1088 + * + * + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1098 + * + * + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1102 + * returns the int64 value underlying scalar numpy timedelta64 object + * """ + * return (obj).obval # <<<<<<<<<<<<<< + * + * + */ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; goto __pyx_L0; + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1098 + * + * + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1105 + * + * + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1109 + * 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/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1105 + * + * + * 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 @@ -10980,130 +12052,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) @@ -11118,6 +12477,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; @@ -11128,6 +12494,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:; @@ -11284,6 +12657,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*/ @@ -11311,12 +12691,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); @@ -11331,6 +12732,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*/ @@ -11358,12 +12766,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); @@ -11378,6 +12807,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, @@ -11486,6 +12922,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) @@ -11496,6 +12939,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) @@ -11504,6 +12954,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) @@ -11512,6 +12969,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) @@ -11520,6 +12984,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) @@ -11528,6 +12999,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) @@ -11536,6 +13014,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) @@ -11544,6 +13029,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) @@ -11552,6 +13044,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) @@ -11560,9 +13059,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); @@ -11579,6 +13092,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, @@ -11701,6 +13221,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); @@ -11711,6 +13238,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:; @@ -11724,6 +13258,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, @@ -11850,6 +13391,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) @@ -11859,13 +13407,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); @@ -11881,6 +13450,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, @@ -11991,6 +13567,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) @@ -12000,8 +13583,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); @@ -12009,6 +13606,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:; @@ -12022,6 +13626,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, @@ -12130,13 +13741,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); @@ -12151,6 +13783,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*/ @@ -12178,8 +13817,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); @@ -12187,6 +13840,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:; @@ -12199,6 +13859,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, @@ -12355,16 +14022,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); @@ -12379,6 +14067,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, @@ -12487,13 +14182,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); @@ -12508,6 +14221,13 @@ 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; @@ -12520,43 +14240,120 @@ static PyArrayObject *__pyx_f_5talib_7_ta_lib_check_array(PyArrayObject *__pyx_v __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: + */ } + /* "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:; @@ -12570,6 +14367,13 @@ 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; @@ -12582,22 +14386,64 @@ static npy_intp __pyx_f_5talib_7_ta_lib_check_length2(PyArrayObject *__pyx_v_a1, int __pyx_clineno = 0; __Pyx_RefNannySetupContext("check_length2", 1); + /* "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)) { + /* "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:; @@ -12609,6 +14455,13 @@ static npy_intp __pyx_f_5talib_7_ta_lib_check_length2(PyArrayObject *__pyx_v_a1, 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; @@ -12621,33 +14474,96 @@ static npy_intp __pyx_f_5talib_7_ta_lib_check_length3(PyArrayObject *__pyx_v_a1, int __pyx_clineno = 0; __Pyx_RefNannySetupContext("check_length3", 1); + /* "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)) { + /* "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]: + */ } + /* "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)) { + /* "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:; @@ -12659,6 +14575,13 @@ static npy_intp __pyx_f_5talib_7_ta_lib_check_length3(PyArrayObject *__pyx_v_a1, 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; @@ -12671,44 +14594,128 @@ static npy_intp __pyx_f_5talib_7_ta_lib_check_length4(PyArrayObject *__pyx_v_a1, int __pyx_clineno = 0; __Pyx_RefNannySetupContext("check_length4", 1); + /* "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)) { + /* "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]: + */ } + /* "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)) { + /* "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]: + */ } + /* "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)) { + /* "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:; @@ -12720,6 +14727,13 @@ static npy_intp __pyx_f_5talib_7_ta_lib_check_length4(PyArrayObject *__pyx_v_a1, 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; @@ -12728,34 +14742,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; @@ -12764,43 +14841,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; @@ -12809,52 +14977,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; @@ -12863,61 +15150,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; @@ -12935,13 +15369,34 @@ static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_double_array(npy_intp __pyx_v 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; + /* "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); @@ -12953,14 +15408,35 @@ static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_double_array(npy_intp __pyx_v __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:; @@ -12974,6 +15450,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; @@ -12991,13 +15474,34 @@ static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp __pyx_v_le 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; + /* "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); @@ -13009,14 +15513,35 @@ static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp __pyx_v_le __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:; @@ -13030,6 +15555,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 ACCBANDS( 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_19ACCBANDS(PyObject *__pyx_self, @@ -13208,52 +15740,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18ACCBANDS(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":167 + * np.ndarray outrealmiddleband + * np.ndarray outreallowerband + * 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, 167, __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":168 + * np.ndarray outreallowerband + * 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, 168, __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":169 + * 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, 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":170 + * 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, 170, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":171 + * 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_ACCBANDS_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, 171, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":172 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ACCBANDS_Lookback( timeperiod ) + * outrealupperband = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":173 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ACCBANDS_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outrealupperband = make_double_array(length, lookback) + * outrealmiddleband = make_double_array(length, lookback) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ACCBANDS_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":174 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ACCBANDS_Lookback( timeperiod ) + * 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, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":175 + * lookback = begidx + lib.TA_ACCBANDS_Lookback( timeperiod ) + * outrealupperband = make_double_array(length, lookback) + * outrealmiddleband = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * outreallowerband = make_double_array(length, lookback) + * retCode = lib.TA_ACCBANDS( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &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, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":176 + * outrealupperband = make_double_array(length, lookback) + * outrealmiddleband = make_double_array(length, lookback) + * outreallowerband = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ACCBANDS( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outrealupperband.data)+lookback , (outrealmiddleband.data)+lookback , (outreallowerband.data)+lookback ) + * _ta_check_success("TA_ACCBANDS", 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, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":177 + * outrealmiddleband = make_double_array(length, lookback) + * outreallowerband = make_double_array(length, lookback) + * retCode = lib.TA_ACCBANDS( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outrealupperband.data)+lookback , (outrealmiddleband.data)+lookback , (outreallowerband.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ACCBANDS", retCode) + * return outrealupperband , outrealmiddleband , outreallowerband + */ __pyx_v_retCode = TA_ACCBANDS(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_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":178 + * outreallowerband = make_double_array(length, lookback) + * retCode = lib.TA_ACCBANDS( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outrealupperband.data)+lookback , (outrealmiddleband.data)+lookback , (outreallowerband.data)+lookback ) + * _ta_check_success("TA_ACCBANDS", retCode) # <<<<<<<<<<<<<< + * return outrealupperband , outrealmiddleband , outreallowerband + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ACCBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":179 + * retCode = lib.TA_ACCBANDS( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outrealupperband.data)+lookback , (outrealmiddleband.data)+lookback , (outreallowerband.data)+lookback ) + * _ta_check_success("TA_ACCBANDS", 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, 179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -13270,6 +15893,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18ACCBANDS(CYTHON_UNUSED PyObject *__p __pyx_t_1 = 0; 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 ACCBANDS( 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:; @@ -13288,6 +15918,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18ACCBANDS(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":181 + * return outrealupperband , outrealmiddleband , outreallowerband + * + * @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_21ACOS(PyObject *__pyx_self, @@ -13410,36 +16047,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20ACOS(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("ACOS", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":200 + * 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, 200, __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":201 + * 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":202 + * 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, 202, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":203 + * 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":204 + * 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":205 + * 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, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":206 + * 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":207 + * 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, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":208 + * 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":181 + * return outrealupperband , outrealmiddleband , outreallowerband + * + * @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:; @@ -13454,6 +16161,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20ACOS(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":210 + * 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_23AD(PyObject *__pyx_self, @@ -13628,52 +16342,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22AD(CYTHON_UNUSED PyObject *__pyx_sel __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); + /* "talib/_func.pxi":229 + * 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, 229, __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":230 + * 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, 230, __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":231 + * 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, 231, __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":232 + * 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, 232, __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":233 + * 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, 233, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":234 + * 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, 234, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":235 + * 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":236 + * 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":237 + * 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, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":238 + * 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":239 + * 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, 239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":240 + * 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":210 + * 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:; @@ -13691,6 +16496,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22AD(CYTHON_UNUSED PyObject *__pyx_sel return __pyx_r; } +/* "talib/_func.pxi":242 + * 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_25ADD(PyObject *__pyx_self, @@ -13831,42 +16643,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24ADD(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_func.pxi":262 + * 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, 262, __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":263 + * 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, 263, __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":264 + * 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, 264, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":265 + * 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, 265, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":266 + * 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":267 + * 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":268 + * 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, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":269 + * 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":270 + * 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, 270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":271 + * 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":242 + * 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:; @@ -13882,6 +16771,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24ADD(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":273 + * 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_27ADOSC(PyObject *__pyx_self, @@ -14092,52 +16988,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26ADOSC(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); + /* "talib/_func.pxi":295 + * 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, 295, __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":296 + * 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, 296, __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":297 + * 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, 297, __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":298 + * 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, 298, __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":299 + * 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, 299, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":300 + * 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, 300, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":301 + * 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":302 + * 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":303 + * 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, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":304 + * 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":305 + * 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, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":306 + * 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":273 + * 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:; @@ -14155,6 +17142,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26ADOSC(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":308 + * 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_29ADX(PyObject *__pyx_self, @@ -14331,47 +17325,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_28ADX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":329 + * 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, 329, __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":330 + * 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, 330, __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":331 + * 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, 331, __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":332 + * 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, 332, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":333 + * 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, 333, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":334 + * 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":335 + * 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":336 + * 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, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":337 + * 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":338 + * 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, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":339 + * 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":308 + * 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:; @@ -14388,6 +17466,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_28ADX(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":341 + * 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_31ADXR(PyObject *__pyx_self, @@ -14564,47 +17649,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_30ADXR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":362 + * 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, 362, __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":363 + * 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, 363, __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":364 + * 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, 364, __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":365 + * 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, 365, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":366 + * 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, 366, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":367 + * 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":368 + * 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":369 + * 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, 369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":370 + * 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":371 + * 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, 371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":372 + * 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":341 + * 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:; @@ -14621,6 +17790,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_30ADXR(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":374 + * 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_33APO(PyObject *__pyx_self, @@ -14796,36 +17972,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_32APO(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannySetupContext("APO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":397 + * 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, 397, __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":398 + * 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":399 + * 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, 399, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":400 + * 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":401 + * 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":402 + * 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, 402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":403 + * 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":404 + * 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, 404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":405 + * 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":374 + * 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:; @@ -14840,6 +18086,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_32APO(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":407 + * 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_35AROON(PyObject *__pyx_self, @@ -15000,42 +18253,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_34AROON(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":430 + * 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, 430, __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":431 + * 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, 431, __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":432 + * 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, 432, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":433 + * 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, 433, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":434 + * 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":435 + * 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":436 + * 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, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":437 + * 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, 437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":438 + * 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":439 + * 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, 439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":440 + * 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, 440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -15049,6 +18379,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_34AROON(CYTHON_UNUSED PyObject *__pyx_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":407 + * 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:; @@ -15065,6 +18402,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_34AROON(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":442 + * 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_37AROONOSC(PyObject *__pyx_self, @@ -15224,42 +18568,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_36AROONOSC(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":463 + * 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, 463, __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":464 + * 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, 464, __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":465 + * 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, 465, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":466 + * 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, 466, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":467 + * 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":468 + * 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":469 + * 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, 469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":470 + * 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":471 + * 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, 471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":472 + * 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":442 + * 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:; @@ -15275,6 +18696,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_36AROONOSC(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":474 + * 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_39ASIN(PyObject *__pyx_self, @@ -15397,36 +18825,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38ASIN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("ASIN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":493 + * 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, 493, __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":494 + * 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":495 + * 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, 495, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":496 + * 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":497 + * 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":498 + * 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, 498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":499 + * 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":500 + * 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, 500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":501 + * 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":474 + * 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:; @@ -15441,6 +18939,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38ASIN(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":503 + * 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_41ATAN(PyObject *__pyx_self, @@ -15563,36 +19068,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40ATAN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("ATAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":522 + * 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, 522, __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":523 + * 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":524 + * 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, 524, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":525 + * 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":526 + * 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":527 + * 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, 527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":528 + * 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":529 + * 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, 529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":530 + * 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":503 + * 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:; @@ -15607,6 +19182,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40ATAN(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":532 + * 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_43ATR(PyObject *__pyx_self, @@ -15783,47 +19365,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42ATR(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":553 + * 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, 553, __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":554 + * 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, 554, __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":555 + * 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, 555, __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":556 + * 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, 556, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":557 + * 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, 557, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":558 + * 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":559 + * 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":560 + * 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, 560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":561 + * 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":562 + * 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, 562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":563 + * 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":532 + * 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:; @@ -15840,6 +19506,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42ATR(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":565 + * 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_45AVGPRICE(PyObject *__pyx_self, @@ -16014,52 +19687,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AVGPRICE(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":584 + * 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, 584, __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":585 + * 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, 585, __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":586 + * 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, 586, __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":587 + * 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, 587, __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":588 + * 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, 588, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":589 + * 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, 589, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":590 + * 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":591 + * 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":592 + * 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, 592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":593 + * 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":594 + * 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, 594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":595 + * 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":565 + * 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:; @@ -16077,6 +19841,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AVGPRICE(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":597 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_47AVGDEV(PyObject *__pyx_self, @@ -16218,36 +19989,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46AVGDEV(CYTHON_UNUSED PyObject *__pyx __Pyx_RefNannySetupContext("AVGDEV", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":618 + * 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, 618, __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":619 + * 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":620 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AVGDEV_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, 620, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":621 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_AVGDEV_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":622 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AVGDEV_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_AVGDEV( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_AVGDEV_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":623 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AVGDEV_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_AVGDEV( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_AVGDEV", 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, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":624 + * lookback = begidx + lib.TA_AVGDEV_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_AVGDEV( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_AVGDEV", retCode) + * return outreal + */ __pyx_v_retCode = TA_AVGDEV(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":625 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_AVGDEV( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_AVGDEV", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":626 + * retCode = lib.TA_AVGDEV( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_AVGDEV", 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":597 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -16262,6 +20103,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46AVGDEV(CYTHON_UNUSED PyObject *__pyx return __pyx_r; } +/* "talib/_func.pxi":628 + * 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_49BBANDS(PyObject *__pyx_self, @@ -16456,41 +20304,118 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48BBANDS(CYTHON_UNUSED PyObject *__pyx __Pyx_RefNannySetupContext("BBANDS", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":656 + * 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, 656, __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":657 + * 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":658 + * 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, 658, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":659 + * 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":660 + * 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":661 + * 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, 661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":662 + * 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, 662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":663 + * 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, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":664 + * 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":665 + * 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, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":666 + * 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, 666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -16507,6 +20432,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48BBANDS(CYTHON_UNUSED PyObject *__pyx __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":628 + * 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:; @@ -16523,6 +20455,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48BBANDS(CYTHON_UNUSED PyObject *__pyx return __pyx_r; } +/* "talib/_func.pxi":668 + * 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_51BETA(PyObject *__pyx_self, @@ -16682,42 +20621,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50BETA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_func.pxi":690 + * 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, 690, __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":691 + * 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, 691, __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":692 + * 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, 692, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":693 + * 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, 693, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":694 + * 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":695 + * 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":696 + * 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, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":697 + * 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":698 + * 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, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":699 + * 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":668 + * 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:; @@ -16733,6 +20749,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50BETA(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":701 + * 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_53BOP(PyObject *__pyx_self, @@ -16907,52 +20930,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52BOP(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":720 + * 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, 720, __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":721 + * 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, 721, __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":722 + * 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, 722, __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":723 + * 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, 723, __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":724 + * 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, 724, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":725 + * 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, 725, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":726 + * 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":727 + * 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":728 + * 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, 728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":729 + * 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":730 + * 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, 730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":731 + * 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":701 + * 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:; @@ -16970,6 +21084,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52BOP(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":733 + * 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_55CCI(PyObject *__pyx_self, @@ -17146,47 +21267,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54CCI(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":754 + * 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, 754, __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":755 + * 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, 755, __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":756 + * 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, 756, __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":757 + * 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, 757, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":758 + * 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, 758, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":759 + * 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":760 + * 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":761 + * 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, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":762 + * 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":763 + * 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, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":764 + * 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":733 + * 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:; @@ -17203,6 +21408,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54CCI(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":766 + * 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_57CDL2CROWS(PyObject *__pyx_self, @@ -17377,52 +21589,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56CDL2CROWS(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":785 + * 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, 785, __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":786 + * 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, 786, __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":787 + * 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, 787, __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":788 + * 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, 788, __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":789 + * 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, 789, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":790 + * 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, 790, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":791 + * 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":792 + * 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":793 + * 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, 793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":794 + * 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":795 + * 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, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":796 + * 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":766 + * 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:; @@ -17440,6 +21743,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56CDL2CROWS(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":798 + * 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_59CDL3BLACKCROWS(PyObject *__pyx_self, @@ -17614,52 +21924,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3BLACKCROWS(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":817 + * 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, 817, __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":818 + * 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, 818, __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":819 + * 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, 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":820 + * 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, 820, __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":821 + * 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, 821, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":822 + * 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, 822, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":823 + * 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":824 + * 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":825 + * 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, 825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":826 + * 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":827 + * 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, 827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":828 + * 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":798 + * 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:; @@ -17677,6 +22078,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3BLACKCROWS(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_func.pxi":830 + * 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_61CDL3INSIDE(PyObject *__pyx_self, @@ -17851,52 +22259,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3INSIDE(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":849 + * 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, 849, __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":850 + * 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, 850, __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":851 + * 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, 851, __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":852 + * 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, 852, __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":853 + * 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, 853, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":854 + * 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, 854, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":855 + * 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":856 + * 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":857 + * 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, 857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":858 + * 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":859 + * 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, 859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":860 + * 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":830 + * 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:; @@ -17914,6 +22413,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3INSIDE(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":862 + * 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_63CDL3LINESTRIKE(PyObject *__pyx_self, @@ -18088,52 +22594,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3LINESTRIKE(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":881 + * 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, 881, __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":882 + * 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, 882, __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":883 + * 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, 883, __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":884 + * 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, 884, __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":885 + * 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, 885, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":886 + * 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, 886, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":887 + * 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":888 + * 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":889 + * 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, 889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":890 + * 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":891 + * 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, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":892 + * 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":862 + * 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:; @@ -18151,6 +22748,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3LINESTRIKE(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_func.pxi":894 + * 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_65CDL3OUTSIDE(PyObject *__pyx_self, @@ -18325,52 +22929,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3OUTSIDE(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":913 + * 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, 913, __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":914 + * 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, 914, __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":915 + * 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, 915, __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":916 + * 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, 916, __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":917 + * 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, 917, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":918 + * 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, 918, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":919 + * 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":920 + * 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":921 + * 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, 921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":922 + * 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":923 + * 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, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":924 + * 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":894 + * 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:; @@ -18388,6 +23083,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3OUTSIDE(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":926 + * 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_67CDL3STARSINSOUTH(PyObject *__pyx_self, @@ -18562,52 +23264,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3STARSINSOUTH(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":945 + * 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, 945, __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":946 + * 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, 946, __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":947 + * 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, 947, __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":948 + * 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, 948, __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":949 + * 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, 949, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":950 + * 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, 950, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":951 + * 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":952 + * 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":953 + * 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, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":954 + * 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":955 + * 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, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":956 + * 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":926 + * 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:; @@ -18625,6 +23418,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3STARSINSOUTH(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":958 + * 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_69CDL3WHITESOLDIERS(PyObject *__pyx_self, @@ -18799,52 +23599,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":977 + * 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, 977, __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":978 + * 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, 978, __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":979 + * 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, 979, __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":980 + * 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, 980, __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":981 + * 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, 981, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":982 + * 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, 982, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":983 + * 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":984 + * 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":985 + * 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, 985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":986 + * 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":987 + * 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, 987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":988 + * 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":958 + * 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:; @@ -18862,6 +23753,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_func.pxi":990 + * 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_71CDLABANDONEDBABY(PyObject *__pyx_self, @@ -19055,52 +23953,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDLABANDONEDBABY(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1011 + * 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, 1011, __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":1012 + * 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, 1012, __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":1013 + * 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, 1013, __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":1014 + * 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, 1014, __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":1015 + * 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, 1015, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1016 + * 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, 1016, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1017 + * 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":1018 + * 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":1019 + * 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, 1019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1020 + * 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":1021 + * 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, 1021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1022 + * 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":990 + * 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:; @@ -19118,6 +24107,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDLABANDONEDBABY(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":1024 + * 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_73CDLADVANCEBLOCK(PyObject *__pyx_self, @@ -19292,52 +24288,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDLADVANCEBLOCK(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1043 + * 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, 1043, __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":1044 + * 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, 1044, __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":1045 + * 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, 1045, __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":1046 + * 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, 1046, __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":1047 + * 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, 1047, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1048 + * 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, 1048, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1049 + * 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":1050 + * 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":1051 + * 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, 1051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1052 + * 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":1053 + * 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, 1053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1054 + * 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":1024 + * 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:; @@ -19355,6 +24442,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDLADVANCEBLOCK(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_func.pxi":1056 + * 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_75CDLBELTHOLD(PyObject *__pyx_self, @@ -19529,52 +24623,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDLBELTHOLD(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1075 + * 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, 1075, __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":1076 + * 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, 1076, __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":1077 + * 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, 1077, __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":1078 + * 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, 1078, __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":1079 + * 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, 1079, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1080 + * 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, 1080, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1081 + * 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":1082 + * 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":1083 + * 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, 1083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1084 + * 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":1085 + * 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, 1085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1086 + * 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":1056 + * 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:; @@ -19592,6 +24777,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDLBELTHOLD(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":1088 + * 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_77CDLBREAKAWAY(PyObject *__pyx_self, @@ -19766,52 +24958,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDLBREAKAWAY(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1107 + * 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, 1107, __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":1108 + * 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, 1108, __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":1109 + * 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, 1109, __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":1110 + * 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, 1110, __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":1111 + * 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, 1111, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1112 + * 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, 1112, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1113 + * 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":1114 + * 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":1115 + * 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, 1115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1116 + * 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":1117 + * 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, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1118 + * 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":1088 + * 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:; @@ -19829,6 +25112,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDLBREAKAWAY(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":1120 + * 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_79CDLCLOSINGMARUBOZU(PyObject *__pyx_self, @@ -20003,52 +25293,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1139 + * 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, 1139, __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":1140 + * 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, 1140, __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":1141 + * 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, 1141, __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":1142 + * 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, 1142, __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":1143 + * 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, 1143, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1144 + * 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, 1144, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1145 + * 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":1146 + * 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":1147 + * 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, 1147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1148 + * 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":1149 + * 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, 1149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1150 + * 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":1120 + * 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:; @@ -20066,6 +25447,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_func.pxi":1152 + * 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_81CDLCONCEALBABYSWALL(PyObject *__pyx_self, @@ -20240,52 +25628,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLCONCEALBABYSWALL(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1171 + * 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, 1171, __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":1172 + * 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, 1172, __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":1173 + * 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, 1173, __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":1174 + * 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, 1174, __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":1175 + * 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, 1175, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1176 + * 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, 1176, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1177 + * 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":1178 + * 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":1179 + * 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, 1179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1180 + * 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":1181 + * 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, 1181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1182 + * 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":1152 + * 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:; @@ -20303,6 +25782,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLCONCEALBABYSWALL(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":1184 + * 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_83CDLCOUNTERATTACK(PyObject *__pyx_self, @@ -20477,52 +25963,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLCOUNTERATTACK(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1203 + * 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, 1203, __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":1204 + * 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, 1204, __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":1205 + * 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, 1205, __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":1206 + * 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, 1206, __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":1207 + * 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, 1207, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1208 + * 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, 1208, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1209 + * 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":1210 + * 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":1211 + * 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, 1211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1212 + * 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":1213 + * 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, 1213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1214 + * 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":1184 + * 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:; @@ -20540,6 +26117,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLCOUNTERATTACK(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":1216 + * 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_85CDLDARKCLOUDCOVER(PyObject *__pyx_self, @@ -20733,52 +26317,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1237 + * 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, 1237, __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":1238 + * 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, 1238, __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":1239 + * 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, 1239, __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":1240 + * 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, 1240, __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":1241 + * 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, 1241, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1242 + * 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, 1242, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1243 + * 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":1244 + * 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":1245 + * 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, 1245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1246 + * 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":1247 + * 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, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1248 + * 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":1216 + * 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:; @@ -20796,6 +26471,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_func.pxi":1250 + * 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_87CDLDOJI(PyObject *__pyx_self, @@ -20970,52 +26652,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLDOJI(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1269 + * 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, 1269, __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":1270 + * 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, 1270, __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":1271 + * 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, 1271, __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":1272 + * 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, 1272, __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":1273 + * 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, 1273, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1274 + * 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, 1274, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1275 + * 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":1276 + * 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":1277 + * 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, 1277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1278 + * 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":1279 + * 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, 1279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1280 + * 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":1250 + * 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:; @@ -21033,6 +26806,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLDOJI(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":1282 + * 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_89CDLDOJISTAR(PyObject *__pyx_self, @@ -21207,52 +26987,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLDOJISTAR(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1301 + * 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, 1301, __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":1302 + * 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, 1302, __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":1303 + * 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, 1303, __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":1304 + * 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, 1304, __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":1305 + * 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, 1305, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1306 + * 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, 1306, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1307 + * 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":1308 + * 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":1309 + * 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, 1309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1310 + * 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":1311 + * 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, 1311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1312 + * 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":1282 + * 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:; @@ -21270,6 +27141,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLDOJISTAR(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":1314 + * 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_91CDLDRAGONFLYDOJI(PyObject *__pyx_self, @@ -21444,52 +27322,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1333 + * 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, 1333, __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":1334 + * 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, 1334, __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":1335 + * 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, 1335, __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":1336 + * 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, 1336, __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":1337 + * 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, 1337, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1338 + * 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, 1338, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1339 + * 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":1340 + * 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":1341 + * 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, 1341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1342 + * 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":1343 + * 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, 1343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1344 + * 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":1314 + * 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:; @@ -21507,6 +27476,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":1346 + * 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_93CDLENGULFING(PyObject *__pyx_self, @@ -21681,52 +27657,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLENGULFING(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1365 + * 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, 1365, __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":1366 + * 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, 1366, __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":1367 + * 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, 1367, __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":1368 + * 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, 1368, __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":1369 + * 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, 1369, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1370 + * 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, 1370, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1371 + * 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":1372 + * 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":1373 + * 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, 1373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1374 + * 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":1375 + * 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, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1376 + * 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":1346 + * 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:; @@ -21744,6 +27811,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLENGULFING(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":1378 + * 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_95CDLEVENINGDOJISTAR(PyObject *__pyx_self, @@ -21937,52 +28011,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLEVENINGDOJISTAR(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1399 + * 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, 1399, __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":1400 + * 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, 1400, __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":1401 + * 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, 1401, __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":1402 + * 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, 1402, __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":1403 + * 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, 1403, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1404 + * 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, 1404, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1405 + * 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":1406 + * 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":1407 + * 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, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1408 + * 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":1409 + * 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, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1410 + * 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":1378 + * 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:; @@ -22000,6 +28165,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLEVENINGDOJISTAR(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_func.pxi":1412 + * 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_97CDLEVENINGSTAR(PyObject *__pyx_self, @@ -22193,52 +28365,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLEVENINGSTAR(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1433 + * 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, 1433, __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":1434 + * 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, 1434, __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":1435 + * 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, 1435, __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":1436 + * 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, 1436, __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":1437 + * 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, 1437, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1438 + * 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, 1438, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1439 + * 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":1440 + * 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":1441 + * 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, 1441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1442 + * 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":1443 + * 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, 1443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1444 + * 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":1412 + * 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:; @@ -22256,6 +28519,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLEVENINGSTAR(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_func.pxi":1446 + * 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_99CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, @@ -22430,52 +28700,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1465 + * 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, 1465, __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":1466 + * 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, 1466, __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":1467 + * 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, 1467, __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":1468 + * 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, 1468, __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":1469 + * 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, 1469, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1470 + * 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, 1470, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1471 + * 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":1472 + * 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":1473 + * 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, 1473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1474 + * 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":1475 + * 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, 1475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1476 + * 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":1446 + * 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:; @@ -22493,6 +28854,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":1478 + * 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_101CDLGRAVESTONEDOJI(PyObject *__pyx_self, @@ -22667,52 +29035,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1497 + * 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, 1497, __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":1498 + * 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, 1498, __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":1499 + * 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, 1499, __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":1500 + * 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, 1500, __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":1501 + * 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, 1501, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1502 + * 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, 1502, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1503 + * 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":1504 + * 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":1505 + * 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, 1505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1506 + * 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":1507 + * 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, 1507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1508 + * 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":1478 + * 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:; @@ -22730,6 +29189,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_func.pxi":1510 + * 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_103CDLHAMMER(PyObject *__pyx_self, @@ -22904,52 +29370,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHAMMER(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1529 + * 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, 1529, __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":1530 + * 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, 1530, __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":1531 + * 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, 1531, __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":1532 + * 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, 1532, __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":1533 + * 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, 1533, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1534 + * 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, 1534, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1535 + * 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":1536 + * 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":1537 + * 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, 1537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1538 + * 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":1539 + * 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, 1539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1540 + * 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":1510 + * 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:; @@ -22967,6 +29524,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHAMMER(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":1542 + * 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_105CDLHANGINGMAN(PyObject *__pyx_self, @@ -23141,52 +29705,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHANGINGMAN(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1561 + * 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, 1561, __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":1562 + * 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, 1562, __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":1563 + * 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, 1563, __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":1564 + * 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, 1564, __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":1565 + * 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, 1565, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1566 + * 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, 1566, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1567 + * 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":1568 + * 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":1569 + * 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, 1569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1570 + * 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":1571 + * 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, 1571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1572 + * 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":1542 + * 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:; @@ -23204,6 +29859,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHANGINGMAN(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_func.pxi":1574 + * 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_107CDLHARAMI(PyObject *__pyx_self, @@ -23378,52 +30040,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHARAMI(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1593 + * 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, 1593, __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":1594 + * 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, 1594, __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":1595 + * 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, 1595, __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":1596 + * 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, 1596, __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":1597 + * 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, 1597, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1598 + * 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, 1598, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1599 + * 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":1600 + * 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":1601 + * 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, 1601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1602 + * 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":1603 + * 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, 1603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1604 + * 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":1574 + * 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:; @@ -23441,6 +30194,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHARAMI(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":1606 + * 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_109CDLHARAMICROSS(PyObject *__pyx_self, @@ -23615,52 +30375,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHARAMICROSS(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1625 + * 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, 1625, __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":1626 + * 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, 1626, __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":1627 + * 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, 1627, __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":1628 + * 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, 1628, __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":1629 + * 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, 1629, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1630 + * 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, 1630, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1631 + * 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":1632 + * 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":1633 + * 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, 1633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1634 + * 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":1635 + * 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, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1636 + * 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":1606 + * 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:; @@ -23678,6 +30529,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHARAMICROSS(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_func.pxi":1638 + * 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_111CDLHIGHWAVE(PyObject *__pyx_self, @@ -23852,52 +30710,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIGHWAVE(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1657 + * 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, 1657, __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":1658 + * 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, 1658, __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":1659 + * 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, 1659, __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":1660 + * 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, 1660, __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":1661 + * 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, 1661, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1662 + * 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, 1662, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1663 + * 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":1664 + * 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":1665 + * 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, 1665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1666 + * 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":1667 + * 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, 1667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1668 + * 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":1638 + * 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:; @@ -23915,6 +30864,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIGHWAVE(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":1670 + * 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_113CDLHIKKAKE(PyObject *__pyx_self, @@ -24089,52 +31045,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHIKKAKE(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1689 + * 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, 1689, __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":1690 + * 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, 1690, __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":1691 + * 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, 1691, __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":1692 + * 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, 1692, __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":1693 + * 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, 1693, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1694 + * 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, 1694, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1695 + * 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":1696 + * 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":1697 + * 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, 1697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1698 + * 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":1699 + * 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, 1699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1700 + * 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":1670 + * 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:; @@ -24152,6 +31199,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHIKKAKE(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":1702 + * 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_115CDLHIKKAKEMOD(PyObject *__pyx_self, @@ -24326,52 +31380,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1721 + * 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, 1721, __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":1722 + * 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, 1722, __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":1723 + * 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, 1723, __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":1724 + * 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, 1724, __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":1725 + * 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, 1725, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1726 + * 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, 1726, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1727 + * 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":1728 + * 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":1729 + * 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, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1730 + * 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":1731 + * 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, 1731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1732 + * 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":1702 + * 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:; @@ -24389,6 +31534,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_func.pxi":1734 + * 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_117CDLHOMINGPIGEON(PyObject *__pyx_self, @@ -24563,52 +31715,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHOMINGPIGEON(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1753 + * 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, 1753, __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":1754 + * 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, 1754, __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":1755 + * 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, 1755, __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":1756 + * 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, 1756, __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":1757 + * 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, 1757, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1758 + * 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, 1758, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1759 + * 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":1760 + * 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":1761 + * 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, 1761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1762 + * 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":1763 + * 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, 1763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1764 + * 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":1734 + * 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:; @@ -24626,6 +31869,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHOMINGPIGEON(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":1766 + * 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_119CDLIDENTICAL3CROWS(PyObject *__pyx_self, @@ -24800,52 +32050,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLIDENTICAL3CROWS(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1785 + * 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, 1785, __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":1786 + * 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, 1786, __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":1787 + * 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, 1787, __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":1788 + * 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, 1788, __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":1789 + * 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, 1789, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1790 + * 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, 1790, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1791 + * 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":1792 + * 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":1793 + * 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, 1793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1794 + * 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":1795 + * 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, 1795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1796 + * 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":1766 + * 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:; @@ -24863,6 +32204,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLIDENTICAL3CROWS(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":1798 + * 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_121CDLINNECK(PyObject *__pyx_self, @@ -25037,52 +32385,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLINNECK(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1817 + * 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, 1817, __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":1818 + * 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, 1818, __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":1819 + * 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, 1819, __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":1820 + * 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, 1820, __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":1821 + * 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, 1821, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1822 + * 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, 1822, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1823 + * 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":1824 + * 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":1825 + * 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, 1825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1826 + * 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":1827 + * 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, 1827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1828 + * 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":1798 + * 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:; @@ -25100,6 +32539,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLINNECK(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":1830 + * 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_123CDLINVERTEDHAMMER(PyObject *__pyx_self, @@ -25274,52 +32720,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLINVERTEDHAMMER(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1849 + * 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, 1849, __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":1850 + * 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, 1850, __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":1851 + * 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, 1851, __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":1852 + * 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, 1852, __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":1853 + * 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, 1853, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1854 + * 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, 1854, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1855 + * 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":1856 + * 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":1857 + * 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, 1857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1858 + * 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":1859 + * 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, 1859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1860 + * 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":1830 + * 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:; @@ -25337,6 +32874,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLINVERTEDHAMMER(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_func.pxi":1862 + * 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_125CDLKICKING(PyObject *__pyx_self, @@ -25511,52 +33055,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLKICKING(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1881 + * 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, 1881, __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":1882 + * 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, 1882, __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":1883 + * 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, 1883, __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":1884 + * 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, 1884, __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":1885 + * 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, 1885, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1886 + * 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, 1886, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1887 + * 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":1888 + * 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":1889 + * 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, 1889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1890 + * 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":1891 + * 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, 1891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1892 + * 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":1862 + * 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:; @@ -25574,6 +33209,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLKICKING(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":1894 + * 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_127CDLKICKINGBYLENGTH(PyObject *__pyx_self, @@ -25748,52 +33390,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLKICKINGBYLENGTH(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1913 + * 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, 1913, __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":1914 + * 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, 1914, __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":1915 + * 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, 1915, __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":1916 + * 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, 1916, __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":1917 + * 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, 1917, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1918 + * 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, 1918, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1919 + * 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":1920 + * 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":1921 + * 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, 1921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1922 + * 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":1923 + * 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, 1923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1924 + * 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":1894 + * 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:; @@ -25811,6 +33544,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLKICKINGBYLENGTH(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":1926 + * 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_129CDLLADDERBOTTOM(PyObject *__pyx_self, @@ -25985,52 +33725,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLADDERBOTTOM(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1945 + * 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, 1945, __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":1946 + * 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, 1946, __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":1947 + * 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, 1947, __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":1948 + * 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, 1948, __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":1949 + * 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, 1949, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1950 + * 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, 1950, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1951 + * 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":1952 + * 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":1953 + * 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, 1953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1954 + * 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":1955 + * 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, 1955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1956 + * 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":1926 + * 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:; @@ -26048,6 +33879,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLADDERBOTTOM(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":1958 + * 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_131CDLLONGLEGGEDDOJI(PyObject *__pyx_self, @@ -26222,52 +34060,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1977 + * 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, 1977, __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":1978 + * 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, 1978, __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":1979 + * 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, 1979, __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":1980 + * 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, 1980, __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":1981 + * 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, 1981, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":1982 + * 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, 1982, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":1983 + * 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":1984 + * 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":1985 + * 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, 1985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1986 + * 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":1987 + * 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, 1987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1988 + * 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":1958 + * 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:; @@ -26285,6 +34214,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_func.pxi":1990 + * 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_133CDLLONGLINE(PyObject *__pyx_self, @@ -26459,52 +34395,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLLONGLINE(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2009 + * 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, 2009, __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":2010 + * 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, 2010, __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":2011 + * 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, 2011, __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":2012 + * 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, 2012, __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":2013 + * 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, 2013, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2014 + * 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, 2014, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2015 + * 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":2016 + * 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":2017 + * 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, 2017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2018 + * 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":2019 + * 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, 2019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2020 + * 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":1990 + * 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:; @@ -26522,6 +34549,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLLONGLINE(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":2022 + * 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_135CDLMARUBOZU(PyObject *__pyx_self, @@ -26696,52 +34730,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMARUBOZU(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2041 + * 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, 2041, __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":2042 + * 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, 2042, __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":2043 + * 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, 2043, __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":2044 + * 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, 2044, __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":2045 + * 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, 2045, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2046 + * 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, 2046, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2047 + * 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":2048 + * 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":2049 + * 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, 2049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2050 + * 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":2051 + * 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, 2051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2052 + * 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":2022 + * 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:; @@ -26759,6 +34884,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMARUBOZU(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":2054 + * 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_137CDLMATCHINGLOW(PyObject *__pyx_self, @@ -26933,52 +35065,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMATCHINGLOW(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2073 + * 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, 2073, __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":2074 + * 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, 2074, __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":2075 + * 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, 2075, __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":2076 + * 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, 2076, __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":2077 + * 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, 2077, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2078 + * 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, 2078, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2079 + * 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":2080 + * 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":2081 + * 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, 2081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2082 + * 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":2083 + * 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, 2083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2084 + * 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":2054 + * 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:; @@ -26996,6 +35219,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMATCHINGLOW(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_func.pxi":2086 + * 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_139CDLMATHOLD(PyObject *__pyx_self, @@ -27189,52 +35419,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMATHOLD(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2107 + * 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, 2107, __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":2108 + * 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, 2108, __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":2109 + * 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, 2109, __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":2110 + * 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, 2110, __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":2111 + * 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, 2111, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2112 + * 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, 2112, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2113 + * 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":2114 + * 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":2115 + * 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, 2115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2116 + * 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":2117 + * 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, 2117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2118 + * 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":2086 + * 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:; @@ -27252,6 +35573,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMATHOLD(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":2120 + * 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_141CDLMORNINGDOJISTAR(PyObject *__pyx_self, @@ -27445,52 +35773,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLMORNINGDOJISTAR(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2141 + * 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, 2141, __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":2142 + * 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, 2142, __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":2143 + * 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, 2143, __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":2144 + * 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, 2144, __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":2145 + * 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, 2145, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2146 + * 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, 2146, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2147 + * 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":2148 + * 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":2149 + * 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, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2150 + * 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":2151 + * 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, 2151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2152 + * 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":2120 + * 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:; @@ -27508,6 +35927,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLMORNINGDOJISTAR(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":2154 + * 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_143CDLMORNINGSTAR(PyObject *__pyx_self, @@ -27701,52 +36127,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMORNINGSTAR(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2175 + * 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, 2175, __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":2176 + * 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, 2176, __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":2177 + * 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, 2177, __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":2178 + * 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, 2178, __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":2179 + * 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, 2179, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2180 + * 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, 2180, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2181 + * 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":2182 + * 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":2183 + * 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, 2183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2184 + * 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":2185 + * 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, 2185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2186 + * 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":2154 + * 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:; @@ -27764,6 +36281,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMORNINGSTAR(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_func.pxi":2188 + * 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_145CDLONNECK(PyObject *__pyx_self, @@ -27938,52 +36462,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLONNECK(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2207 + * 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, 2207, __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":2208 + * 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, 2208, __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":2209 + * 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, 2209, __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":2210 + * 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, 2210, __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":2211 + * 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, 2211, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2212 + * 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, 2212, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2213 + * 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":2214 + * 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":2215 + * 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, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2216 + * 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":2217 + * 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, 2217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2218 + * 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":2188 + * 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:; @@ -28001,6 +36616,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLONNECK(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":2220 + * 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_147CDLPIERCING(PyObject *__pyx_self, @@ -28175,52 +36797,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLPIERCING(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2239 + * 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, 2239, __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":2240 + * 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, 2240, __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":2241 + * 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, 2241, __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":2242 + * 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, 2242, __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":2243 + * 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, 2243, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2244 + * 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, 2244, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2245 + * 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":2246 + * 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":2247 + * 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, 2247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2248 + * 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":2249 + * 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, 2249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2250 + * 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":2220 + * 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:; @@ -28238,6 +36951,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLPIERCING(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":2252 + * 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_149CDLRICKSHAWMAN(PyObject *__pyx_self, @@ -28412,52 +37132,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLRICKSHAWMAN(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2271 + * 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, 2271, __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":2272 + * 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, 2272, __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":2273 + * 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, 2273, __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":2274 + * 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, 2274, __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":2275 + * 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, 2275, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2276 + * 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, 2276, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2277 + * 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":2278 + * 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":2279 + * 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, 2279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2280 + * 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":2281 + * 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, 2281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2282 + * 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":2252 + * 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:; @@ -28475,6 +37286,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLRICKSHAWMAN(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_func.pxi":2284 + * 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_151CDLRISEFALL3METHODS(PyObject *__pyx_self, @@ -28649,52 +37467,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLRISEFALL3METHODS(CYTHON_UNUSED P __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2303 + * 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, 2303, __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":2304 + * 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, 2304, __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":2305 + * 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, 2305, __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":2306 + * 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, 2306, __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":2307 + * 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, 2307, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2308 + * 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, 2308, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2309 + * 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":2310 + * 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":2311 + * 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, 2311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2312 + * 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":2313 + * 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, 2313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2314 + * 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":2284 + * 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:; @@ -28712,6 +37621,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLRISEFALL3METHODS(CYTHON_UNUSED P return __pyx_r; } +/* "talib/_func.pxi":2316 + * 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_153CDLSEPARATINGLINES(PyObject *__pyx_self, @@ -28886,52 +37802,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSEPARATINGLINES(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2335 + * 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, 2335, __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":2336 + * 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, 2336, __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":2337 + * 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, 2337, __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":2338 + * 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, 2338, __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":2339 + * 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, 2339, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2340 + * 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, 2340, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2341 + * 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":2342 + * 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":2343 + * 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, 2343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2344 + * 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":2345 + * 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, 2345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2346 + * 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":2316 + * 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:; @@ -28949,6 +37956,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSEPARATINGLINES(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":2348 + * 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_155CDLSHOOTINGSTAR(PyObject *__pyx_self, @@ -29123,52 +38137,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2367 + * 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, 2367, __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":2368 + * 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, 2368, __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":2369 + * 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, 2369, __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":2370 + * 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, 2370, __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":2371 + * 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, 2371, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2372 + * 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, 2372, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2373 + * 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":2374 + * 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":2375 + * 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, 2375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2376 + * 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":2377 + * 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, 2377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2378 + * 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":2348 + * 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:; @@ -29186,6 +38291,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":2380 + * 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_157CDLSHORTLINE(PyObject *__pyx_self, @@ -29360,52 +38472,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSHORTLINE(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2399 + * 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, 2399, __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":2400 + * 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, 2400, __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":2401 + * 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, 2401, __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":2402 + * 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, 2402, __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":2403 + * 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, 2403, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2404 + * 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, 2404, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2405 + * 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":2406 + * 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":2407 + * 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, 2407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2408 + * 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":2409 + * 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, 2409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2410 + * 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":2380 + * 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:; @@ -29423,6 +38626,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSHORTLINE(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":2412 + * 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_159CDLSPINNINGTOP(PyObject *__pyx_self, @@ -29597,52 +38807,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSPINNINGTOP(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2431 + * 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, 2431, __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":2432 + * 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, 2432, __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":2433 + * 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, 2433, __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":2434 + * 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, 2434, __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":2435 + * 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, 2435, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2436 + * 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, 2436, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2437 + * 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":2438 + * 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":2439 + * 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, 2439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2440 + * 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":2441 + * 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, 2441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2442 + * 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":2412 + * 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:; @@ -29660,6 +38961,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSPINNINGTOP(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_func.pxi":2444 + * 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_161CDLSTALLEDPATTERN(PyObject *__pyx_self, @@ -29834,52 +39142,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSTALLEDPATTERN(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2463 + * 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, 2463, __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":2464 + * 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, 2464, __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":2465 + * 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, 2465, __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":2466 + * 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, 2466, __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":2467 + * 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, 2467, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2468 + * 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, 2468, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2469 + * 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":2470 + * 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":2471 + * 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, 2471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2472 + * 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":2473 + * 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, 2473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2474 + * 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":2444 + * 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:; @@ -29897,6 +39296,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSTALLEDPATTERN(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_func.pxi":2476 + * 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_163CDLSTICKSANDWICH(PyObject *__pyx_self, @@ -30071,52 +39477,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSTICKSANDWICH(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2495 + * 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, 2495, __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":2496 + * 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, 2496, __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":2497 + * 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, 2497, __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":2498 + * 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, 2498, __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":2499 + * 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, 2499, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2500 + * 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, 2500, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2501 + * 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":2502 + * 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":2503 + * 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, 2503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2504 + * 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":2505 + * 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, 2505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2506 + * 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":2476 + * 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:; @@ -30134,6 +39631,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSTICKSANDWICH(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_func.pxi":2508 + * 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_165CDLTAKURI(PyObject *__pyx_self, @@ -30308,52 +39812,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTAKURI(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2527 + * 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, 2527, __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":2528 + * 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, 2528, __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":2529 + * 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, 2529, __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":2530 + * 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, 2530, __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":2531 + * 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, 2531, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2532 + * 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, 2532, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2533 + * 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":2534 + * 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":2535 + * 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, 2535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2536 + * 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":2537 + * 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, 2537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2538 + * 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":2508 + * 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:; @@ -30371,6 +39966,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTAKURI(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":2540 + * 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_167CDLTASUKIGAP(PyObject *__pyx_self, @@ -30545,52 +40147,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTASUKIGAP(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2559 + * 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, 2559, __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":2560 + * 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, 2560, __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":2561 + * 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, 2561, __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":2562 + * 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, 2562, __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":2563 + * 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, 2563, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2564 + * 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, 2564, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2565 + * 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":2566 + * 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":2567 + * 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, 2567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2568 + * 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":2569 + * 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, 2569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2570 + * 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":2540 + * 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:; @@ -30608,6 +40301,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTASUKIGAP(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":2572 + * 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_169CDLTHRUSTING(PyObject *__pyx_self, @@ -30782,52 +40482,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLTHRUSTING(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2591 + * 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, 2591, __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":2592 + * 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, 2592, __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":2593 + * 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, 2593, __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":2594 + * 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, 2594, __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":2595 + * 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, 2595, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2596 + * 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, 2596, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2597 + * 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":2598 + * 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":2599 + * 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, 2599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2600 + * 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":2601 + * 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, 2601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2602 + * 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":2572 + * 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:; @@ -30845,6 +40636,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLTHRUSTING(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":2604 + * 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_171CDLTRISTAR(PyObject *__pyx_self, @@ -31019,52 +40817,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLTRISTAR(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2623 + * 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, 2623, __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":2624 + * 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, 2624, __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":2625 + * 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, 2625, __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":2626 + * 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, 2626, __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":2627 + * 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, 2627, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2628 + * 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, 2628, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2629 + * 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":2630 + * 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":2631 + * 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, 2631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2632 + * 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":2633 + * 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, 2633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2634 + * 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":2604 + * 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:; @@ -31082,6 +40971,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLTRISTAR(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":2636 + * 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_173CDLUNIQUE3RIVER(PyObject *__pyx_self, @@ -31256,52 +41152,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2655 + * 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, 2655, __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":2656 + * 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, 2656, __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":2657 + * 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, 2657, __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":2658 + * 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, 2658, __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":2659 + * 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, 2659, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2660 + * 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, 2660, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2661 + * 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":2662 + * 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":2663 + * 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, 2663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2664 + * 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":2665 + * 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, 2665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2666 + * 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":2636 + * 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:; @@ -31319,6 +41306,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":2668 + * 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_175CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, @@ -31493,52 +41487,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2687 + * 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, 2687, __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":2688 + * 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, 2688, __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":2689 + * 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, 2689, __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":2690 + * 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, 2690, __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":2691 + * 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, 2691, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2692 + * 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, 2692, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2693 + * 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":2694 + * 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":2695 + * 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, 2695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2696 + * 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":2697 + * 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, 2697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2698 + * 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":2668 + * 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:; @@ -31556,6 +41641,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":2700 + * 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_177CDLXSIDEGAP3METHODS(PyObject *__pyx_self, @@ -31730,52 +41822,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS(CYTHON_UNUSED P __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2719 + * 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, 2719, __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":2720 + * 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, 2720, __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":2721 + * 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, 2721, __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":2722 + * 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, 2722, __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":2723 + * 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, 2723, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2724 + * 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, 2724, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2725 + * 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":2726 + * 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":2727 + * 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, 2727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2728 + * 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":2729 + * 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, 2729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2730 + * 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":2700 + * 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:; @@ -31793,6 +41976,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS(CYTHON_UNUSED P return __pyx_r; } +/* "talib/_func.pxi":2732 + * 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_179CEIL(PyObject *__pyx_self, @@ -31915,36 +42105,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CEIL(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannySetupContext("CEIL", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2751 + * 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, 2751, __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":2752 + * 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":2753 + * 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, 2753, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":2754 + * 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":2755 + * 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":2756 + * 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, 2756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2757 + * 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":2758 + * 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, 2758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2759 + * 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":2732 + * 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:; @@ -31959,6 +42219,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CEIL(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":2761 + * 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_181CMO(PyObject *__pyx_self, @@ -32100,36 +42367,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CMO(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("CMO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2782 + * 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, 2782, __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":2783 + * 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":2784 + * 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, 2784, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":2785 + * 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":2786 + * 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":2787 + * 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, 2787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2788 + * 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":2789 + * 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, 2789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2790 + * 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":2761 + * 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:; @@ -32144,6 +42481,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CMO(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":2792 + * 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_183CORREL(PyObject *__pyx_self, @@ -32303,42 +42647,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CORREL(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_func.pxi":2814 + * 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, 2814, __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":2815 + * 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, 2815, __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":2816 + * 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, 2816, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2817 + * 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, 2817, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2818 + * 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":2819 + * 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":2820 + * 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, 2820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2821 + * 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":2822 + * 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, 2822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2823 + * 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":2792 + * 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:; @@ -32354,6 +42775,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CORREL(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":2825 + * 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_185COS(PyObject *__pyx_self, @@ -32476,36 +42904,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184COS(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("COS", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2844 + * 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, 2844, __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":2845 + * 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":2846 + * 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, 2846, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":2847 + * 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":2848 + * 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":2849 + * 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, 2849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2850 + * 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":2851 + * 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, 2851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2852 + * 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":2825 + * 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:; @@ -32520,6 +43018,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184COS(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":2854 + * 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_187COSH(PyObject *__pyx_self, @@ -32642,36 +43147,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186COSH(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannySetupContext("COSH", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2873 + * 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, 2873, __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":2874 + * 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":2875 + * 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, 2875, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":2876 + * 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":2877 + * 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":2878 + * 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, 2878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2879 + * 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":2880 + * 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, 2880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2881 + * 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":2854 + * 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:; @@ -32686,6 +43261,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186COSH(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":2883 + * 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_189DEMA(PyObject *__pyx_self, @@ -32827,36 +43409,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188DEMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannySetupContext("DEMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2904 + * 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, 2904, __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":2905 + * 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":2906 + * 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, 2906, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":2907 + * 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":2908 + * 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":2909 + * 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, 2909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2910 + * 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":2911 + * 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, 2911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2912 + * 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":2883 + * 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:; @@ -32871,6 +43523,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188DEMA(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":2914 + * 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_191DIV(PyObject *__pyx_self, @@ -33011,42 +43670,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190DIV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_func.pxi":2934 + * 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, 2934, __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":2935 + * 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, 2935, __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":2936 + * 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, 2936, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2937 + * 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, 2937, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2938 + * 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":2939 + * 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":2940 + * 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, 2940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2941 + * 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":2942 + * 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, 2942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2943 + * 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":2914 + * 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:; @@ -33062,6 +43798,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190DIV(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":2945 + * 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_193DX(PyObject *__pyx_self, @@ -33238,47 +43981,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192DX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2966 + * 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, 2966, __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":2967 + * 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, 2967, __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":2968 + * 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, 2968, __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":2969 + * 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, 2969, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":2970 + * 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, 2970, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":2971 + * 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":2972 + * 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":2973 + * 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, 2973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2974 + * 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":2975 + * 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, 2975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2976 + * 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":2945 + * 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:; @@ -33295,6 +44122,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192DX(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":2978 + * 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_195EMA(PyObject *__pyx_self, @@ -33436,36 +44270,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194EMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("EMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2999 + * 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, 2999, __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":3000 + * 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":3001 + * 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, 3001, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3002 + * 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":3003 + * 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":3004 + * 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, 3004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3005 + * 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":3006 + * 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, 3006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3007 + * 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":2978 + * 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:; @@ -33480,6 +44384,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194EMA(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":3009 + * 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_197EXP(PyObject *__pyx_self, @@ -33602,36 +44513,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196EXP(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("EXP", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3028 + * 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, 3028, __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":3029 + * 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":3030 + * 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, 3030, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3031 + * 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":3032 + * 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":3033 + * 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, 3033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3034 + * 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":3035 + * 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, 3035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3036 + * 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":3009 + * 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:; @@ -33646,6 +44627,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196EXP(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":3038 + * 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_199FLOOR(PyObject *__pyx_self, @@ -33768,36 +44756,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198FLOOR(CYTHON_UNUSED PyObject *__pyx __Pyx_RefNannySetupContext("FLOOR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3057 + * 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, 3057, __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":3058 + * 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":3059 + * 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, 3059, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3060 + * 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":3061 + * 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":3062 + * 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, 3062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3063 + * 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":3064 + * 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, 3064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3065 + * 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":3038 + * 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:; @@ -33812,6 +44870,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198FLOOR(CYTHON_UNUSED PyObject *__pyx return __pyx_r; } +/* "talib/_func.pxi":3067 + * 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_201HT_DCPERIOD(PyObject *__pyx_self, @@ -33934,36 +44999,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200HT_DCPERIOD(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("HT_DCPERIOD", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3086 + * 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, 3086, __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":3087 + * 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":3088 + * 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, 3088, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3089 + * 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":3090 + * 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":3091 + * 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, 3091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3092 + * 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":3093 + * 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, 3093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3094 + * 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":3067 + * 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:; @@ -33978,6 +45113,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200HT_DCPERIOD(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":3096 + * 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_203HT_DCPHASE(PyObject *__pyx_self, @@ -34100,36 +45242,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202HT_DCPHASE(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("HT_DCPHASE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3115 + * 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, 3115, __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":3116 + * 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":3117 + * 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, 3117, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3118 + * 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":3119 + * 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":3120 + * 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, 3120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3121 + * 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":3122 + * 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, 3122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3123 + * 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":3096 + * 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:; @@ -34144,6 +45356,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202HT_DCPHASE(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":3125 + * 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_205HT_PHASOR(PyObject *__pyx_self, @@ -34267,36 +45486,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204HT_PHASOR(CYTHON_UNUSED PyObject *_ __Pyx_RefNannySetupContext("HT_PHASOR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3146 + * 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, 3146, __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":3147 + * 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":3148 + * 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, 3148, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3149 + * 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":3150 + * 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":3151 + * 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, 3151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3152 + * 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, 3152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3153 + * 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":3154 + * 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, 3154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3155 + * 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, 3155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -34310,6 +45599,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204HT_PHASOR(CYTHON_UNUSED PyObject *_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3125 + * 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:; @@ -34325,6 +45621,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204HT_PHASOR(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":3157 + * 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_207HT_SINE(PyObject *__pyx_self, @@ -34448,36 +45751,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206HT_SINE(CYTHON_UNUSED PyObject *__p __Pyx_RefNannySetupContext("HT_SINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3178 + * 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, 3178, __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":3179 + * 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":3180 + * 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, 3180, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3181 + * 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":3182 + * 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":3183 + * 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, 3183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outsine = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3184 + * 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, 3184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3185 + * 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":3186 + * 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, 3186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3187 + * 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, 3187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -34491,6 +45864,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206HT_SINE(CYTHON_UNUSED PyObject *__p __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3157 + * 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:; @@ -34506,6 +45886,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206HT_SINE(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":3189 + * 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_209HT_TRENDLINE(PyObject *__pyx_self, @@ -34628,36 +46015,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208HT_TRENDLINE(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("HT_TRENDLINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3208 + * 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, 3208, __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":3209 + * 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":3210 + * 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, 3210, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3211 + * 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":3212 + * 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":3213 + * 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, 3213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3214 + * 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":3215 + * 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, 3215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3216 + * 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":3189 + * 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:; @@ -34672,6 +46129,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208HT_TRENDLINE(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":3218 + * 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_211HT_TRENDMODE(PyObject *__pyx_self, @@ -34794,36 +46258,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210HT_TRENDMODE(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("HT_TRENDMODE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3237 + * 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, 3237, __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":3238 + * 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":3239 + * 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, 3239, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3240 + * 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":3241 + * 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":3242 + * 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, 3242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3243 + * 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":3244 + * 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, 3244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3245 + * 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":3218 + * 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:; @@ -34838,6 +46372,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210HT_TRENDMODE(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":3247 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_213IMI(PyObject *__pyx_self, @@ -34997,42 +46538,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212IMI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":3268 + * int outnbelement + * np.ndarray outreal + * open = check_array(open) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length2(open, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3268, __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":3269 + * np.ndarray outreal + * open = check_array(open) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length2(open, close) + * begidx = check_begidx2(length, (open.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, 3269, __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":3270 + * open = check_array(open) + * close = check_array(close) + * length = check_length2(open, close) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (open.data), (close.data)) + * endidx = length - begidx - 1 + */ __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3270, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":3271 + * close = check_array(close) + * length = check_length2(open, close) + * begidx = check_begidx2(length, (open.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_IMI_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_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3271, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":3272 + * length = check_length2(open, close) + * begidx = check_begidx2(length, (open.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_IMI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3273 + * begidx = check_begidx2(length, (open.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_IMI_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_IMI( 0 , endidx , (open.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_IMI_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3274 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_IMI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_IMI( 0 , endidx , (open.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_IMI", 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, 3274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3275 + * lookback = begidx + lib.TA_IMI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_IMI( 0 , endidx , (open.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_IMI", retCode) + * return outreal + */ __pyx_v_retCode = TA_IMI(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_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":3276 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_IMI( 0 , endidx , (open.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_IMI", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3277 + * retCode = lib.TA_IMI( 0 , endidx , (open.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_IMI", 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":3247 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -35048,6 +46666,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212IMI(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":3279 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def KAMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_215KAMA(PyObject *__pyx_self, @@ -35189,36 +46814,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214KAMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannySetupContext("KAMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3300 + * 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, 3300, __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":3301 + * 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":3302 + * 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, 3302, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3303 + * 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":3304 + * 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":3305 + * 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, 3305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3306 + * 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":3307 + * 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, 3307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3308 + * 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":3279 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def KAMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -35233,6 +46928,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214KAMA(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":3310 + * 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_217LINEARREG(PyObject *__pyx_self, @@ -35374,36 +47076,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216LINEARREG(CYTHON_UNUSED PyObject *_ __Pyx_RefNannySetupContext("LINEARREG", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3331 + * 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, 3331, __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":3332 + * 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":3333 + * 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, 3333, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3334 + * 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":3335 + * 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":3336 + * 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, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3337 + * 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":3338 + * 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, 3338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3339 + * 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":3310 + * 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:; @@ -35418,6 +47190,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216LINEARREG(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":3341 + * 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_219LINEARREG_ANGLE(PyObject *__pyx_self, @@ -35559,36 +47338,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218LINEARREG_ANGLE(CYTHON_UNUSED PyObj __Pyx_RefNannySetupContext("LINEARREG_ANGLE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3362 + * 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, 3362, __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":3363 + * 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":3364 + * 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, 3364, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3365 + * 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":3366 + * 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":3367 + * 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, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3368 + * 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":3369 + * 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, 3369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3370 + * 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":3341 + * 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:; @@ -35603,6 +47452,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218LINEARREG_ANGLE(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":3372 + * 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_221LINEARREG_INTERCEPT(PyObject *__pyx_self, @@ -35744,36 +47600,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220LINEARREG_INTERCEPT(CYTHON_UNUSED P __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3393 + * 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, 3393, __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":3394 + * 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":3395 + * 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, 3395, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3396 + * 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":3397 + * 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":3398 + * 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, 3398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3399 + * 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":3400 + * 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, 3400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3401 + * 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":3372 + * 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:; @@ -35788,6 +47714,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220LINEARREG_INTERCEPT(CYTHON_UNUSED P return __pyx_r; } +/* "talib/_func.pxi":3403 + * 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_223LINEARREG_SLOPE(PyObject *__pyx_self, @@ -35929,36 +47862,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222LINEARREG_SLOPE(CYTHON_UNUSED PyObj __Pyx_RefNannySetupContext("LINEARREG_SLOPE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3424 + * 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, 3424, __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":3425 + * 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":3426 + * 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, 3426, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3427 + * 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":3428 + * 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":3429 + * 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, 3429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3430 + * 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":3431 + * 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, 3431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3432 + * 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":3403 + * 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:; @@ -35973,6 +47976,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222LINEARREG_SLOPE(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":3434 + * 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_225LN(PyObject *__pyx_self, @@ -36095,36 +48105,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224LN(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannySetupContext("LN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3453 + * 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, 3453, __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":3454 + * 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":3455 + * 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, 3455, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3456 + * 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":3457 + * 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":3458 + * 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, 3458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3459 + * 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":3460 + * 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, 3460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3461 + * 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":3434 + * 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:; @@ -36139,6 +48219,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224LN(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":3463 + * 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_227LOG10(PyObject *__pyx_self, @@ -36261,36 +48348,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226LOG10(CYTHON_UNUSED PyObject *__pyx __Pyx_RefNannySetupContext("LOG10", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3482 + * 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, 3482, __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":3483 + * 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":3484 + * 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, 3484, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3485 + * 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":3486 + * 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":3487 + * 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, 3487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3488 + * 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":3489 + * 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, 3489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3490 + * 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":3463 + * 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:; @@ -36305,6 +48462,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226LOG10(CYTHON_UNUSED PyObject *__pyx return __pyx_r; } +/* "talib/_func.pxi":3492 + * 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_229MA(PyObject *__pyx_self, @@ -36463,36 +48627,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228MA(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannySetupContext("MA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3514 + * 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, 3514, __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":3515 + * 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":3516 + * 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, 3516, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3517 + * 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":3518 + * 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":3519 + * 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, 3519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3520 + * 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":3521 + * 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, 3521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3522 + * 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":3492 + * 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:; @@ -36507,6 +48741,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228MA(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":3524 + * 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_231MACD(PyObject *__pyx_self, @@ -36684,41 +48925,118 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230MACD(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannySetupContext("MACD", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3551 + * 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, 3551, __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":3552 + * 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":3553 + * 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, 3553, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3554 + * 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":3555 + * 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":3556 + * 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, 3556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3557 + * 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, 3557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3558 + * 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, 3558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3559 + * 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":3560 + * 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, 3560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3561 + * 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, 3561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -36735,6 +49053,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230MACD(CYTHON_UNUSED PyObject *__pyx_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3524 + * 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:; @@ -36751,6 +49076,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230MACD(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":3563 + * 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_233MACDEXT(PyObject *__pyx_self, @@ -36979,41 +49311,118 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232MACDEXT(CYTHON_UNUSED PyObject *__p __Pyx_RefNannySetupContext("MACDEXT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3593 + * 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, 3593, __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":3594 + * 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":3595 + * 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, 3595, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3596 + * 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":3597 + * 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":3598 + * 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, 3598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3599 + * 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, 3599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3600 + * 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, 3600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3601 + * 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":3602 + * 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, 3602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3603 + * 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, 3603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -37030,6 +49439,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232MACDEXT(CYTHON_UNUSED PyObject *__p __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3563 + * 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:; @@ -37046,6 +49462,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232MACDEXT(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":3605 + * 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_235MACDFIX(PyObject *__pyx_self, @@ -37189,41 +49612,118 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234MACDFIX(CYTHON_UNUSED PyObject *__p __Pyx_RefNannySetupContext("MACDFIX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3630 + * 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, 3630, __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":3631 + * 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":3632 + * 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, 3632, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3633 + * 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":3634 + * 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":3635 + * 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, 3635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3636 + * 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, 3636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3637 + * 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, 3637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3638 + * 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":3639 + * 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, 3639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3640 + * 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, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -37240,6 +49740,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234MACDFIX(CYTHON_UNUSED PyObject *__p __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3605 + * 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:; @@ -37256,6 +49763,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234MACDFIX(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":3642 + * 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_237MAMA(PyObject *__pyx_self, @@ -37415,36 +49929,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236MAMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannySetupContext("MAMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3666 + * 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, 3666, __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":3667 + * 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":3668 + * 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, 3668, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3669 + * 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":3670 + * 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":3671 + * 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, 3671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmama = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3672 + * 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, 3672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfama = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3673 + * 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":3674 + * 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, 3674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3675 + * 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, 3675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -37458,6 +50042,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236MAMA(CYTHON_UNUSED PyObject *__pyx_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3642 + * 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:; @@ -37473,6 +50064,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236MAMA(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":3677 + * 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_239MAVP(PyObject *__pyx_self, @@ -37666,42 +50264,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238MAVP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_real); __Pyx_INCREF((PyObject *)__pyx_v_periods); + /* "talib/_func.pxi":3701 + * 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, 3701, __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":3702 + * 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, 3702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_periods, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":3703 + * 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, 3703, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":3704 + * 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, 3704, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":3705 + * 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":3706 + * 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":3707 + * 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, 3707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3708 + * 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":3709 + * 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, 3709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3710 + * 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":3677 + * 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:; @@ -37717,6 +50392,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238MAVP(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":3712 + * 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_241MAX(PyObject *__pyx_self, @@ -37858,36 +50540,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240MAX(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("MAX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3733 + * 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, 3733, __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":3734 + * 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":3735 + * 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, 3735, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3736 + * 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":3737 + * 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":3738 + * 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, 3738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3739 + * 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":3740 + * 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, 3740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3741 + * 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":3712 + * 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:; @@ -37902,6 +50654,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240MAX(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":3743 + * 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_243MAXINDEX(PyObject *__pyx_self, @@ -38047,45 +50806,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242MAXINDEX(CYTHON_UNUSED PyObject *__ __Pyx_RefNannySetupContext("MAXINDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3764 + * 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, 3764, __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":3765 + * 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":3766 + * 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, 3766, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3767 + * 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":3768 + * 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":3769 + * 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, 3769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3770 + * 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":3771 + * 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, 3771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3772 + * 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":3773 + * _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":3774 + * 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":3775 + * 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":3743 + * 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:; @@ -38100,6 +50950,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242MAXINDEX(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":3777 + * 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_245MEDPRICE(PyObject *__pyx_self, @@ -38240,42 +51097,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244MEDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":3796 + * 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, 3796, __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":3797 + * 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, 3797, __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":3798 + * 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, 3798, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":3799 + * 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, 3799, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":3800 + * 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":3801 + * 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":3802 + * 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, 3802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3803 + * 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":3804 + * 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, 3804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3805 + * 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":3777 + * 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:; @@ -38291,6 +51225,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244MEDPRICE(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":3807 + * 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_247MFI(PyObject *__pyx_self, @@ -38484,52 +51425,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246MFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); + /* "talib/_func.pxi":3828 + * 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, 3828, __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":3829 + * 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, 3829, __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":3830 + * 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, 3830, __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":3831 + * 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, 3831, __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":3832 + * 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, 3832, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":3833 + * 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, 3833, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":3834 + * 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":3835 + * 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":3836 + * 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, 3836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3837 + * 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":3838 + * 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, 3838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3839 + * 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":3807 + * 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:; @@ -38547,6 +51579,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246MFI(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":3841 + * 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_249MIDPOINT(PyObject *__pyx_self, @@ -38688,36 +51727,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248MIDPOINT(CYTHON_UNUSED PyObject *__ __Pyx_RefNannySetupContext("MIDPOINT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3862 + * 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, 3862, __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":3863 + * 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":3864 + * 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, 3864, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3865 + * 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":3866 + * 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":3867 + * 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, 3867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3868 + * 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":3869 + * 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, 3869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3870 + * 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":3841 + * 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:; @@ -38732,6 +51841,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248MIDPOINT(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":3872 + * 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_251MIDPRICE(PyObject *__pyx_self, @@ -38891,42 +52007,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250MIDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":3893 + * 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, 3893, __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":3894 + * 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, 3894, __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":3895 + * 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, 3895, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":3896 + * 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, 3896, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":3897 + * 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":3898 + * 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":3899 + * 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, 3899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3900 + * 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":3901 + * 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, 3901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3902 + * 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":3872 + * 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:; @@ -38942,6 +52135,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250MIDPRICE(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":3904 + * 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_253MIN(PyObject *__pyx_self, @@ -39083,36 +52283,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252MIN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("MIN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3925 + * 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, 3925, __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":3926 + * 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":3927 + * 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, 3927, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3928 + * 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":3929 + * 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":3930 + * 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, 3930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3931 + * 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":3932 + * 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, 3932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3933 + * 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":3904 + * 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:; @@ -39127,6 +52397,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252MIN(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":3935 + * 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_255MININDEX(PyObject *__pyx_self, @@ -39272,45 +52549,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254MININDEX(CYTHON_UNUSED PyObject *__ __Pyx_RefNannySetupContext("MININDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3956 + * 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, 3956, __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":3957 + * 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":3958 + * 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, 3958, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3959 + * 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":3960 + * 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":3961 + * 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, 3961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3962 + * 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":3963 + * 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, 3963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3964 + * 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":3965 + * _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":3966 + * 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":3967 + * 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":3935 + * 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:; @@ -39325,6 +52693,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254MININDEX(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":3969 + * 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_257MINMAX(PyObject *__pyx_self, @@ -39467,36 +52842,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256MINMAX(CYTHON_UNUSED PyObject *__py __Pyx_RefNannySetupContext("MINMAX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3992 + * 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, 3992, __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":3993 + * 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":3994 + * 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, 3994, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":3995 + * 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":3996 + * 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":3997 + * 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, 3997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmin = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3998 + * 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, 3998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmax = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3999 + * 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":4000 + * 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, 4000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4001 + * 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, 4001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -39510,6 +52955,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256MINMAX(CYTHON_UNUSED PyObject *__py __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3969 + * 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:; @@ -39525,6 +52977,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256MINMAX(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":4003 + * 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_259MINMAXINDEX(PyObject *__pyx_self, @@ -39672,54 +53131,166 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258MINMAXINDEX(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("MINMAXINDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4026 + * 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, 4026, __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":4027 + * 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":4028 + * 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, 4028, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4029 + * 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":4030 + * 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":4031 + * 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, 4031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4032 + * 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, 4032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4033 + * 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":4034 + * 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, 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_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":4036 + * _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":4037 + * 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); } + /* "talib/_func.pxi":4038 + * 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":4039 + * 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":4040 + * 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":4041 + * 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, 4041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -39733,6 +53304,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258MINMAXINDEX(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":4003 + * 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:; @@ -39748,6 +53326,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258MINMAXINDEX(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":4043 + * 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_261MINUS_DI(PyObject *__pyx_self, @@ -39924,47 +53509,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260MINUS_DI(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":4064 + * 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, 4064, __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":4065 + * 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, 4065, __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":4066 + * 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, 4066, __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":4067 + * 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, 4067, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":4068 + * 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, 4068, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":4069 + * 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":4070 + * 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":4071 + * 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, 4071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4072 + * 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":4073 + * 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, 4073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4074 + * 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":4043 + * 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:; @@ -39981,6 +53650,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260MINUS_DI(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":4076 + * 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_263MINUS_DM(PyObject *__pyx_self, @@ -40140,42 +53816,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262MINUS_DM(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":4097 + * 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, 4097, __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":4098 + * 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, 4098, __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":4099 + * 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, 4099, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":4100 + * 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, 4100, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":4101 + * 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":4102 + * 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":4103 + * 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, 4103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4104 + * 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":4105 + * 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, 4105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4106 + * 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":4076 + * 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:; @@ -40191,6 +53944,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262MINUS_DM(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":4108 + * 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_265MOM(PyObject *__pyx_self, @@ -40332,36 +54092,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264MOM(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("MOM", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4129 + * 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, 4129, __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":4130 + * 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":4131 + * 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, 4131, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4132 + * 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":4133 + * 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":4134 + * 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, 4134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4135 + * 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":4136 + * 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, 4136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4137 + * 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":4108 + * 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:; @@ -40376,6 +54206,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264MOM(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4139 + * 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_267MULT(PyObject *__pyx_self, @@ -40516,42 +54353,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266MULT(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_func.pxi":4159 + * 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, 4159, __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":4160 + * 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, 4160, __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":4161 + * 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, 4161, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":4162 + * 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, 4162, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":4163 + * 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":4164 + * 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":4165 + * 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, 4165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4166 + * 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":4167 + * 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, 4167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4168 + * 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":4139 + * 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:; @@ -40567,6 +54481,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266MULT(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4170 + * 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_269NATR(PyObject *__pyx_self, @@ -40743,47 +54664,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268NATR(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":4191 + * 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, 4191, __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":4192 + * 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, 4192, __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":4193 + * 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, 4193, __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":4194 + * 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, 4194, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":4195 + * 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, 4195, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":4196 + * 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":4197 + * 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":4198 + * 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, 4198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4199 + * 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":4200 + * 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, 4200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4201 + * 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":4170 + * 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:; @@ -40800,6 +54805,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268NATR(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4203 + * 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_271OBV(PyObject *__pyx_self, @@ -40940,42 +54952,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270OBV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_real); __Pyx_INCREF((PyObject *)__pyx_v_volume); + /* "talib/_func.pxi":4223 + * 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, 4223, __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":4224 + * 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, 4224, __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":4225 + * 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, 4225, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":4226 + * 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, 4226, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":4227 + * 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":4228 + * 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":4229 + * 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, 4229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4230 + * 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":4231 + * 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, 4231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4232 + * 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":4203 + * 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:; @@ -40991,6 +55080,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270OBV(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4234 + * 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_273PLUS_DI(PyObject *__pyx_self, @@ -41167,47 +55263,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272PLUS_DI(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":4255 + * 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, 4255, __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":4256 + * 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, 4256, __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":4257 + * 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, 4257, __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":4258 + * 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, 4258, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":4259 + * 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, 4259, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":4260 + * 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":4261 + * 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":4262 + * 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, 4262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4263 + * 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":4264 + * 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, 4264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4265 + * 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":4234 + * 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:; @@ -41224,6 +55404,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272PLUS_DI(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":4267 + * 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_275PLUS_DM(PyObject *__pyx_self, @@ -41383,42 +55570,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274PLUS_DM(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":4288 + * 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, 4288, __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":4289 + * 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, 4289, __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":4290 + * 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, 4290, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":4291 + * 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, 4291, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":4292 + * 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":4293 + * 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":4294 + * 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, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4295 + * 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":4296 + * 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, 4296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4297 + * 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":4267 + * 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:; @@ -41434,6 +55698,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274PLUS_DM(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":4299 + * 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_277PPO(PyObject *__pyx_self, @@ -41609,36 +55880,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276PPO(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("PPO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4322 + * 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, 4322, __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":4323 + * 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":4324 + * 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, 4324, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4325 + * 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":4326 + * 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":4327 + * 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, 4327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4328 + * 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":4329 + * 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, 4329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4330 + * 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":4299 + * 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:; @@ -41653,6 +55994,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276PPO(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4332 + * 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_279ROC(PyObject *__pyx_self, @@ -41794,36 +56142,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278ROC(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("ROC", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4353 + * 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, 4353, __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":4354 + * 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":4355 + * 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, 4355, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4356 + * 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":4357 + * 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":4358 + * 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, 4358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4359 + * 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":4360 + * 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, 4360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4361 + * 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":4332 + * 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:; @@ -41838,6 +56256,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278ROC(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4363 + * 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_281ROCP(PyObject *__pyx_self, @@ -41979,36 +56404,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280ROCP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannySetupContext("ROCP", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4384 + * 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, 4384, __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":4385 + * 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":4386 + * 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, 4386, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4387 + * 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":4388 + * 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":4389 + * 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, 4389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4390 + * 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":4391 + * 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, 4391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4392 + * 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":4363 + * 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:; @@ -42023,6 +56518,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280ROCP(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4394 + * 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_283ROCR(PyObject *__pyx_self, @@ -42164,36 +56666,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282ROCR(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannySetupContext("ROCR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4415 + * 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, 4415, __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":4416 + * 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":4417 + * 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, 4417, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4418 + * 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":4419 + * 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":4420 + * 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, 4420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4421 + * 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":4422 + * 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, 4422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4423 + * 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":4394 + * 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:; @@ -42208,6 +56780,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282ROCR(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4425 + * 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_285ROCR100(PyObject *__pyx_self, @@ -42349,36 +56928,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284ROCR100(CYTHON_UNUSED PyObject *__p __Pyx_RefNannySetupContext("ROCR100", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4446 + * 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, 4446, __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":4447 + * 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":4448 + * 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, 4448, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4449 + * 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":4450 + * 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":4451 + * 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, 4451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4452 + * 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":4453 + * 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, 4453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4454 + * 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":4425 + * 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:; @@ -42393,6 +57042,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284ROCR100(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":4456 + * 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_287RSI(PyObject *__pyx_self, @@ -42534,36 +57190,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286RSI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("RSI", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4477 + * 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, 4477, __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":4478 + * 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":4479 + * 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, 4479, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4480 + * 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":4481 + * 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":4482 + * 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, 4482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4483 + * 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":4484 + * 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, 4484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4485 + * 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":4456 + * 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:; @@ -42578,6 +57304,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286RSI(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4487 + * 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_289SAR(PyObject *__pyx_self, @@ -42754,42 +57487,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288SAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":4509 + * 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, 4509, __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":4510 + * 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, 4510, __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":4511 + * 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, 4511, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":4512 + * 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, 4512, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":4513 + * 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":4514 + * 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":4515 + * 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, 4515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4516 + * 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":4517 + * 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, 4517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4518 + * 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":4487 + * 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:; @@ -42805,6 +57615,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288SAR(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4520 + * 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_291SAREXT(PyObject *__pyx_self, @@ -43083,42 +57900,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290SAREXT(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":4548 + * 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, 4548, __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":4549 + * 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, 4549, __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":4550 + * 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, 4550, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":4551 + * 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, 4551, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":4552 + * 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":4553 + * 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":4554 + * 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, 4554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4555 + * 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":4556 + * 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, 4556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4557 + * 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":4520 + * 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:; @@ -43134,6 +58028,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290SAREXT(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":4559 + * 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_293SIN(PyObject *__pyx_self, @@ -43256,36 +58157,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292SIN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("SIN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4578 + * 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, 4578, __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":4579 + * 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":4580 + * 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, 4580, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4581 + * 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":4582 + * 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":4583 + * 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, 4583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4584 + * 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":4585 + * 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, 4585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4586 + * 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":4559 + * 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:; @@ -43300,6 +58271,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292SIN(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4588 + * 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_295SINH(PyObject *__pyx_self, @@ -43422,36 +58400,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294SINH(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannySetupContext("SINH", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4607 + * 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, 4607, __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":4608 + * 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":4609 + * 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, 4609, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4610 + * 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":4611 + * 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":4612 + * 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, 4612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4613 + * 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":4614 + * 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, 4614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4615 + * 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":4588 + * 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:; @@ -43466,6 +58514,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294SINH(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4617 + * 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_297SMA(PyObject *__pyx_self, @@ -43607,36 +58662,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296SMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("SMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4638 + * 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, 4638, __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":4639 + * 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":4640 + * 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, 4640, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4641 + * 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":4642 + * 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":4643 + * 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, 4643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4644 + * 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":4645 + * 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, 4645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4646 + * 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":4617 + * 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:; @@ -43651,6 +58776,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296SMA(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4648 + * 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_299SQRT(PyObject *__pyx_self, @@ -43773,36 +58905,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298SQRT(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannySetupContext("SQRT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4667 + * 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, 4667, __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":4668 + * 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":4669 + * 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, 4669, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4670 + * 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":4671 + * 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":4672 + * 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, 4672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4673 + * 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":4674 + * 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, 4674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4675 + * 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":4648 + * 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:; @@ -43817,6 +59019,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298SQRT(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4677 + * 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_301STDDEV(PyObject *__pyx_self, @@ -43975,36 +59184,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300STDDEV(CYTHON_UNUSED PyObject *__py __Pyx_RefNannySetupContext("STDDEV", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4699 + * 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, 4699, __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":4700 + * 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":4701 + * 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, 4701, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4702 + * 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":4703 + * 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":4704 + * 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, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4705 + * 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":4706 + * 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, 4706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4707 + * 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":4677 + * 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:; @@ -44019,6 +59298,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300STDDEV(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":4709 + * 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_303STOCH(PyObject *__pyx_self, @@ -44264,47 +59550,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302STOCH(CYTHON_UNUSED PyObject *__pyx __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":4736 + * 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, 4736, __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":4737 + * 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, 4737, __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":4738 + * 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, 4738, __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":4739 + * 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, 4739, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":4740 + * 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, 4740, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":4741 + * 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":4742 + * 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":4743 + * 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, 4743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4744 + * 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, 4744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4745 + * 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":4746 + * 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, 4746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4747 + * 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, 4747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -44318,6 +59688,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302STOCH(CYTHON_UNUSED PyObject *__pyx __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":4709 + * 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:; @@ -44335,6 +59712,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302STOCH(CYTHON_UNUSED PyObject *__pyx return __pyx_r; } +/* "talib/_func.pxi":4749 + * 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_305STOCHF(PyObject *__pyx_self, @@ -44546,47 +59930,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304STOCHF(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":4774 + * 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, 4774, __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":4775 + * 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, 4775, __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":4776 + * 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, 4776, __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":4777 + * 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, 4777, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":4778 + * 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, 4778, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":4779 + * 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":4780 + * 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":4781 + * 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, 4781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4782 + * 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, 4782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4783 + * 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":4784 + * 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, 4784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4785 + * 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, 4785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -44600,6 +60068,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304STOCHF(CYTHON_UNUSED PyObject *__py __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":4749 + * 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:; @@ -44617,6 +60092,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304STOCHF(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":4787 + * 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_307STOCHRSI(PyObject *__pyx_self, @@ -44810,36 +60292,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306STOCHRSI(CYTHON_UNUSED PyObject *__ __Pyx_RefNannySetupContext("STOCHRSI", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4813 + * 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, 4813, __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":4814 + * 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":4815 + * 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, 4815, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4816 + * 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":4817 + * 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":4818 + * 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, 4818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4819 + * 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, 4819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4820 + * 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":4821 + * 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, 4821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4822 + * 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, 4822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -44853,6 +60405,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306STOCHRSI(CYTHON_UNUSED PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":4787 + * 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:; @@ -44868,6 +60427,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306STOCHRSI(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":4824 + * 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_309SUB(PyObject *__pyx_self, @@ -45008,42 +60574,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308SUB(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_func.pxi":4844 + * 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, 4844, __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":4845 + * 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, 4845, __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":4846 + * 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, 4846, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":4847 + * 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, 4847, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":4848 + * 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":4849 + * 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":4850 + * 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, 4850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4851 + * 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":4852 + * 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, 4852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4853 + * 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":4824 + * 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:; @@ -45059,6 +60702,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308SUB(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4855 + * 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_311SUM(PyObject *__pyx_self, @@ -45200,36 +60850,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310SUM(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("SUM", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4876 + * 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, 4876, __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":4877 + * 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":4878 + * 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, 4878, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4879 + * 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":4880 + * 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":4881 + * 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, 4881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4882 + * 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":4883 + * 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, 4883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4884 + * 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":4855 + * 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:; @@ -45244,6 +60964,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310SUM(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4886 + * 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_313T3(PyObject *__pyx_self, @@ -45402,36 +61129,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312T3(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannySetupContext("T3", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4908 + * 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, 4908, __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":4909 + * 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":4910 + * 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, 4910, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4911 + * 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":4912 + * 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":4913 + * 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, 4913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4914 + * 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":4915 + * 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, 4915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4916 + * 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":4886 + * 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:; @@ -45446,6 +61243,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312T3(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":4918 + * 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_315TAN(PyObject *__pyx_self, @@ -45568,36 +61372,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314TAN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("TAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4937 + * 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, 4937, __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":4938 + * 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":4939 + * 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, 4939, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4940 + * 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":4941 + * 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":4942 + * 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, 4942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4943 + * 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":4944 + * 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, 4944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4945 + * 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":4918 + * 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:; @@ -45612,6 +61486,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314TAN(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4947 + * 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_317TANH(PyObject *__pyx_self, @@ -45734,36 +61615,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316TANH(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannySetupContext("TANH", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4966 + * 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, 4966, __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":4967 + * 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":4968 + * 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, 4968, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":4969 + * 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":4970 + * 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":4971 + * 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, 4971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4972 + * 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":4973 + * 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, 4973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4974 + * 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":4947 + * 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:; @@ -45778,6 +61729,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316TANH(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4976 + * 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_319TEMA(PyObject *__pyx_self, @@ -45919,36 +61877,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318TEMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannySetupContext("TEMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4997 + * 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, 4997, __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":4998 + * 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":4999 + * 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, 4999, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":5000 + * 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":5001 + * 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":5002 + * 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, 5002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5003 + * 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":5004 + * 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, 5004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5005 + * 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":4976 + * 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:; @@ -45963,6 +61991,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318TEMA(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":5007 + * 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_321TRANGE(PyObject *__pyx_self, @@ -46120,47 +62155,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320TRANGE(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":5026 + * 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, 5026, __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":5027 + * 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, 5027, __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":5028 + * 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, 5028, __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":5029 + * 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, 5029, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":5030 + * 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, 5030, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":5031 + * 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":5032 + * 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":5033 + * 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, 5033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5034 + * 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":5035 + * 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, 5035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5036 + * 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":5007 + * 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:; @@ -46177,6 +62296,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320TRANGE(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":5038 + * 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_323TRIMA(PyObject *__pyx_self, @@ -46318,36 +62444,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322TRIMA(CYTHON_UNUSED PyObject *__pyx __Pyx_RefNannySetupContext("TRIMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":5059 + * 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, 5059, __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":5060 + * 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":5061 + * 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, 5061, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":5062 + * 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":5063 + * 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":5064 + * 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, 5064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5065 + * 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":5066 + * 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, 5066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5067 + * 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":5038 + * 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:; @@ -46362,6 +62558,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322TRIMA(CYTHON_UNUSED PyObject *__pyx return __pyx_r; } +/* "talib/_func.pxi":5069 + * 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_325TRIX(PyObject *__pyx_self, @@ -46503,36 +62706,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324TRIX(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannySetupContext("TRIX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":5090 + * 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, 5090, __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":5091 + * 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":5092 + * 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, 5092, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":5093 + * 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":5094 + * 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":5095 + * 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, 5095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5096 + * 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":5097 + * 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, 5097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5098 + * 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":5069 + * 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:; @@ -46547,6 +62820,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324TRIX(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":5100 + * 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_327TSF(PyObject *__pyx_self, @@ -46688,36 +62968,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326TSF(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("TSF", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":5121 + * 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, 5121, __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":5122 + * 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":5123 + * 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, 5123, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":5124 + * 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":5125 + * 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":5126 + * 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, 5126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5127 + * 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":5128 + * 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, 5128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5129 + * 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":5100 + * 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:; @@ -46732,6 +63082,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326TSF(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":5131 + * 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_329TYPPRICE(PyObject *__pyx_self, @@ -46889,47 +63246,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328TYPPRICE(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":5150 + * 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, 5150, __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":5151 + * 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, 5151, __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":5152 + * 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, 5152, __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":5153 + * 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, 5153, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":5154 + * 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, 5154, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":5155 + * 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":5156 + * 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":5157 + * 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, 5157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5158 + * 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":5159 + * 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, 5159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5160 + * 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":5131 + * 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:; @@ -46946,6 +63387,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328TYPPRICE(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":5162 + * 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_331ULTOSC(PyObject *__pyx_self, @@ -47156,47 +63604,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330ULTOSC(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":5185 + * 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, 5185, __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":5186 + * 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, 5186, __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":5187 + * 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, 5187, __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":5188 + * 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, 5188, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":5189 + * 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, 5189, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":5190 + * 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":5191 + * 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":5192 + * 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, 5192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5193 + * 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":5194 + * 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, 5194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5195 + * 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":5162 + * 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:; @@ -47213,6 +63745,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330ULTOSC(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":5197 + * 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_333VAR(PyObject *__pyx_self, @@ -47371,36 +63910,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332VAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("VAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":5219 + * 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, 5219, __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":5220 + * 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":5221 + * 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, 5221, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":5222 + * 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":5223 + * 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":5224 + * 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, 5224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5225 + * 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":5226 + * 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, 5226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5227 + * 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":5197 + * 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:; @@ -47415,6 +64024,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332VAR(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":5229 + * 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_335WCLPRICE(PyObject *__pyx_self, @@ -47572,47 +64188,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334WCLPRICE(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":5248 + * 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, 5248, __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":5249 + * 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, 5249, __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":5250 + * 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, 5250, __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":5251 + * 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, 5251, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":5252 + * 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, 5252, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":5253 + * 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":5254 + * 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":5255 + * 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, 5255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5256 + * 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":5257 + * 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, 5257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5258 + * 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":5229 + * 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:; @@ -47629,6 +64329,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334WCLPRICE(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":5260 + * 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_337WILLR(PyObject *__pyx_self, @@ -47805,47 +64512,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336WILLR(CYTHON_UNUSED PyObject *__pyx __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":5281 + * 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, 5281, __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":5282 + * 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, 5282, __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":5283 + * 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, 5283, __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":5284 + * 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, 5284, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_func.pxi":5285 + * 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, 5285, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; + /* "talib/_func.pxi":5286 + * 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":5287 + * 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":5288 + * 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, 5288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5289 + * 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":5290 + * 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, 5290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5291 + * 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":5260 + * 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:; @@ -47862,6 +64653,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336WILLR(CYTHON_UNUSED PyObject *__pyx return __pyx_r; } +/* "talib/_func.pxi":5293 + * 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_339WMA(PyObject *__pyx_self, @@ -48003,36 +64801,106 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338WMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannySetupContext("WMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":5314 + * 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, 5314, __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":5315 + * 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":5316 + * 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, 5316, __pyx_L1_error) __pyx_v_begidx = __pyx_t_2; + /* "talib/_func.pxi":5317 + * 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":5318 + * 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":5319 + * 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, 5319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5320 + * 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":5321 + * 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, 5321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5322 + * 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__ = ["ACCBANDS","ACOS","AD","ADD","ADOSC","ADX","ADXR","APO","AROON","AROONOSC","ASIN","ATAN","ATR","AVGPRICE","AVGDEV","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","IMI","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":5293 + * 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:; @@ -48047,6 +64915,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338WMA(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_341str2bytes(PyObject *__pyx_self, @@ -48154,6 +65029,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340str2bytes(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); @@ -48170,6 +65052,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340str2bytes(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:; @@ -48183,6 +65072,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340str2bytes(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_343bytes2str(PyObject *__pyx_self, @@ -48286,12 +65182,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342bytes2str(CYTHON_UNUSED PyObject *_ PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; - unsigned int __pyx_t_4; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; 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); @@ -48321,6 +65224,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342bytes2str(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:; @@ -48335,6 +65245,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342bytes2str(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_345str2bytes(PyObject *__pyx_self, @@ -48437,11 +65354,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344str2bytes(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:; @@ -48450,6 +65381,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344str2bytes(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_347bytes2str(PyObject *__pyx_self, @@ -48552,11 +65490,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346bytes2str(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:; @@ -48565,6 +65517,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346bytes2str(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, @@ -48714,13 +65673,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObj PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; - unsigned int __pyx_t_4; + int __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; 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; @@ -48748,11 +65714,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) @@ -48783,6 +65763,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) @@ -48813,6 +65800,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) @@ -48823,8 +65817,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); @@ -48842,6 +65850,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, @@ -48953,7 +65968,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - unsigned int __pyx_t_6; + int __pyx_t_6; PyObject *__pyx_t_7 = NULL; Py_ssize_t __pyx_t_8; PyObject *(*__pyx_t_9)(PyObject *); @@ -48963,22 +65978,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; @@ -49006,6 +66056,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; @@ -49033,6 +66090,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; @@ -49060,8 +66124,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) @@ -49092,6 +66170,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) @@ -49178,6 +66263,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) @@ -49208,17 +66300,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) @@ -49227,16 +66340,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) @@ -49245,6 +66386,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) @@ -49331,6 +66479,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) @@ -49361,19 +66516,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) @@ -49382,6 +66565,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; @@ -49412,6 +66602,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) @@ -49498,6 +66695,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) @@ -49528,11 +66732,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) @@ -49544,14 +66762,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) @@ -49560,13 +66799,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:; @@ -49589,6 +66849,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, @@ -49693,12 +66960,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; - unsigned int __pyx_t_4; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; 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); @@ -49734,6 +67008,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:; @@ -49748,6 +67029,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, @@ -49856,6 +67144,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); @@ -49869,6 +67164,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:; @@ -49882,6 +67184,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, @@ -49986,12 +67295,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; - unsigned int __pyx_t_4; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; 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); @@ -50030,6 +67346,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:; @@ -50044,6 +67367,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, @@ -50151,7 +67481,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNU PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; - unsigned int __pyx_t_4; + int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); int __pyx_lineno = 0; @@ -50159,11 +67489,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; @@ -50191,6 +67535,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)) { @@ -50249,6 +67600,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) @@ -50260,14 +67618,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:; @@ -50285,6 +67664,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, @@ -50407,7 +67793,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNU PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; - unsigned int __pyx_t_4; + int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); PyObject *__pyx_t_7 = NULL; @@ -50418,11 +67804,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; @@ -50551,6 +67951,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) @@ -50559,6 +67966,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) @@ -50567,11 +67981,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); @@ -50593,6 +68028,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, @@ -50700,17 +68142,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UN int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - unsigned int __pyx_t_6; + int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; 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); @@ -50721,6 +68177,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) @@ -50731,8 +68194,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); @@ -50765,8 +68242,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) @@ -50801,6 +68292,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:; @@ -50816,6 +68314,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, @@ -50940,7 +68445,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - unsigned int __pyx_t_5; + int __pyx_t_5; Py_ssize_t __pyx_t_6; PyObject *(*__pyx_t_7)(PyObject *); int __pyx_t_8; @@ -50950,22 +68455,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; @@ -51046,6 +68579,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); @@ -51056,6 +68596,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) @@ -51063,8 +68610,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) @@ -51074,9 +68635,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) @@ -51086,33 +68661,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) { @@ -51123,9 +68775,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); @@ -51138,6 +68804,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; @@ -51146,13 +68819,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:; @@ -51171,6 +68865,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, @@ -51278,7 +68979,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUS PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; - unsigned int __pyx_t_4; + int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); PyObject *__pyx_t_7 = NULL; @@ -51287,11 +68988,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; @@ -51319,6 +69034,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)) { @@ -51377,6 +69099,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; @@ -51404,14 +69133,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:; @@ -51430,6 +69180,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, @@ -51559,7 +69316,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUS int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - unsigned int __pyx_t_5; + int __pyx_t_5; Py_ssize_t __pyx_t_6; PyObject *(*__pyx_t_7)(PyObject *); PyObject *__pyx_t_8 = NULL; @@ -51571,11 +69328,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 { @@ -51592,6 +69363,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; @@ -51618,6 +69396,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; @@ -51746,6 +69531,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; @@ -51774,6 +69566,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) @@ -51782,13 +69581,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) @@ -51797,6 +69624,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); @@ -51819,6 +69653,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, @@ -51952,22 +69793,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U int __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; - unsigned int __pyx_t_10; - PyObject *(*__pyx_t_11)(PyObject *); - PyObject *__pyx_t_12 = NULL; - int __pyx_t_13; + PyObject *(*__pyx_t_10)(PyObject *); + PyObject *__pyx_t_11 = NULL; + int __pyx_t_12; int __pyx_lineno = 0; const char *__pyx_filename = NULL; 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); @@ -51982,21 +69843,42 @@ 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; - __pyx_t_10 = 0; + __pyx_t_6 = 0; #if CYTHON_UNPACK_METHODS if (likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); @@ -52005,13 +69887,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); - __pyx_t_10 = 1; + __pyx_t_6 = 1; } } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_9, __pyx_v_key, __pyx_v_value}; - __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10); + __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); @@ -52021,6 +69903,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) @@ -52032,19 +69921,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) @@ -52056,6 +69980,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) @@ -52067,23 +69998,51 @@ 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) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = NULL; - __pyx_t_10 = 0; + __pyx_t_4 = 0; #if CYTHON_UNPACK_METHODS if (likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); @@ -52092,13 +70051,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); - __pyx_t_10 = 1; + __pyx_t_4 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10); + __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 320, __pyx_L1_error) @@ -52109,11 +70068,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); @@ -52123,6 +70103,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) @@ -52130,15 +70117,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_9 = __pyx_t_1; __Pyx_INCREF(__pyx_t_9); __pyx_t_3 = 0; - __pyx_t_11 = NULL; + __pyx_t_10 = NULL; } else { __pyx_t_3 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 323, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 323, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { - if (likely(!__pyx_t_11)) { + if (likely(!__pyx_t_10)) { if (likely(PyList_CheckExact(__pyx_t_9))) { { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_9); @@ -52169,7 +70156,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U #endif } } else { - __pyx_t_1 = __pyx_t_11(__pyx_t_9); + __pyx_t_1 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { @@ -52190,11 +70177,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); @@ -52204,31 +70205,45 @@ 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; - __pyx_t_10 = 0; + __pyx_t_11 = NULL; + __pyx_t_4 = 0; #if CYTHON_UNPACK_METHODS if (likely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_12)) { + __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_12); + __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_10 = 1; + __pyx_t_4 = 1; } } #endif { - PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_v_param_name, __pyx_v_value}; - __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10); - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + PyObject *__pyx_callargs[3] = {__pyx_t_11, __pyx_v_param_name, __pyx_v_value}; + __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4); + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -52237,6 +70252,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) @@ -52245,33 +70267,96 @@ 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]): + */ } - __pyx_t_13 = (PyTuple_GET_SIZE(__pyx_v_args) != 0); - if (!__pyx_t_13) { + /* "talib/_abstract.pxi":331 + * update_info = True + * + * if args or kwargs: # <<<<<<<<<<<<<< + * if update_info: + * local.info['parameters'] = self.parameters + */ + __pyx_t_12 = (PyTuple_GET_SIZE(__pyx_v_args) != 0); + if (!__pyx_t_12) { } else { - __pyx_t_7 = __pyx_t_13; + __pyx_t_7 = __pyx_t_12; goto __pyx_L16_bool_binop_done; } - __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(1, 331, __pyx_L1_error) - __pyx_t_7 = __pyx_t_13; + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(1, 331, __pyx_L1_error) + __pyx_t_7 = __pyx_t_12; __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) @@ -52280,12 +70365,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); @@ -52295,7 +70408,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_12); + __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -52310,6 +70423,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, @@ -52427,23 +70547,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO PyObject *(*__pyx_t_7)(PyObject *); PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; - unsigned int __pyx_t_10; + int __pyx_t_10; int __pyx_t_11; int __pyx_t_12; - int __pyx_t_13; - double __pyx_t_14; + double __pyx_t_13; + int __pyx_t_14; int __pyx_t_15; - int __pyx_t_16; int __pyx_lineno = 0; const char *__pyx_filename = NULL; 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) @@ -52451,6 +70584,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) @@ -52518,6 +70658,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; @@ -52545,6 +70692,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) @@ -52556,6 +70710,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) @@ -52577,13 +70738,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO __pyx_L6_bool_binop_done:; if (__pyx_t_11) { - __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":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_10 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L1_error) + __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L1_error) + __pyx_t_14 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(__pyx_v_holder, __pyx_t_10, __pyx_t_13); if (unlikely(__pyx_t_14 == ((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) @@ -52605,22 +70787,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO __pyx_L8_bool_binop_done:; if (__pyx_t_11) { - __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":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_14 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 351, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 351, __pyx_L1_error) + __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(__pyx_v_holder, __pyx_t_14, __pyx_t_10); if (unlikely(__pyx_t_15 == ((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; - __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; - - __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":353 + * __ta_setOptInputParamInteger(holder, i, value) + * + * lookback = __ta_getLookback(holder) # <<<<<<<<<<<<<< + * __ta_paramHolderFree(holder) + * return lookback + */ + __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_getLookback(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(1, 353, __pyx_L1_error) + __pyx_v_lookback = __pyx_t_15; + + /* "talib/_abstract.pxi":354 + * + * lookback = __ta_getLookback(holder) + * __ta_paramHolderFree(holder) # <<<<<<<<<<<<<< + * return lookback + * + */ + __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(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); @@ -52628,6 +70852,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:; @@ -52649,6 +70880,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, @@ -52754,7 +70992,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; - unsigned int __pyx_t_4; + int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; int __pyx_lineno = 0; @@ -52762,6 +71000,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) @@ -52795,22 +71040,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:; @@ -52826,6 +71106,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, @@ -52935,7 +71222,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - unsigned int __pyx_t_6; + int __pyx_t_6; Py_ssize_t __pyx_t_7; PyObject *__pyx_t_8 = NULL; int __pyx_lineno = 0; @@ -52943,11 +71230,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) @@ -52955,6 +71256,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; @@ -52981,8 +71289,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) @@ -53013,17 +71335,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); @@ -53034,6 +71384,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) @@ -53044,8 +71401,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) @@ -53054,10 +71425,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); @@ -53080,8 +71465,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) @@ -53119,15 +71518,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; @@ -53138,8 +71558,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); @@ -53150,6 +71584,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) @@ -53160,12 +71601,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); @@ -53198,8 +71660,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) @@ -53237,6 +71713,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) @@ -53244,6 +71727,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; @@ -53254,8 +71744,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) @@ -53274,6 +71778,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:; @@ -53292,6 +71803,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, @@ -53413,15 +71931,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - unsigned int __pyx_t_5; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; 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; @@ -53448,8 +71980,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; @@ -53476,6 +72022,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); @@ -53483,6 +72036,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:; @@ -53497,6 +72057,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, @@ -53631,7 +72198,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - unsigned int __pyx_t_5; + int __pyx_t_5; Py_ssize_t __pyx_t_6; PyObject *(*__pyx_t_7)(PyObject *); int __pyx_t_8; @@ -53640,27 +72207,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - int __pyx_t_14; - PyObject *__pyx_t_15 = NULL; - Py_ssize_t __pyx_t_16; + PyObject *__pyx_t_14 = NULL; + Py_ssize_t __pyx_t_15; + PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; - PyObject *__pyx_t_19 = NULL; - PyObject *(*__pyx_t_20)(PyObject *); + PyObject *(*__pyx_t_19)(PyObject *); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __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) @@ -53744,6 +72331,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) @@ -53763,14 +72357,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)) { @@ -53829,6 +72444,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) @@ -53848,21 +72470,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; @@ -53890,6 +72540,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 { @@ -53908,6 +72565,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)) { @@ -53972,6 +72636,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) @@ -53979,10 +72650,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 @@ -53992,11 +72684,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; @@ -54006,44 +72712,93 @@ 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; - __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IndexError); - if (__pyx_t_14) { + /* "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_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IndexError); + if (__pyx_t_5) { __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(1, 436, __pyx_L17_except_error) + if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_14) < 0) __PYX_ERR(1, 436, __pyx_L17_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_4); - __Pyx_XGOTREF(__pyx_t_15); - - __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(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_XGOTREF(__pyx_t_14); + + /* "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_15 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(1, 438, __pyx_L17_except_error) + __pyx_t_16 = PyInt_FromSsize_t(__pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 438, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_16); + + /* "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_17 = __Pyx_PyString_Join(__pyx_kp_s__7, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 439, __pyx_L17_except_error) __Pyx_GOTREF(__pyx_t_17); - __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) + /* "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_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 438, __pyx_L17_except_error) __Pyx_GOTREF(__pyx_t_18); - - __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_16); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_16)) __PYX_ERR(1, 438, __pyx_L17_except_error); __Pyx_GIVEREF(__pyx_t_17); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_17)) __PYX_ERR(1, 438, __pyx_L17_except_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_18)) __PYX_ERR(1, 438, __pyx_L17_except_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_17)) __PYX_ERR(1, 438, __pyx_L17_except_error); + __pyx_t_16 = 0; __pyx_t_17 = 0; - __pyx_t_18 = 0; - - __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; - __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); + /* "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_17 = __Pyx_PyString_Format(__pyx_kp_s_Too_many_price_arguments_expecte, __pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 437, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_v_msg = ((PyObject*)__pyx_t_17); + __pyx_t_17 = 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_17 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_v_msg); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 440, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_17); + __Pyx_Raise(__pyx_t_17, 0, 0, 0); + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __PYX_ERR(1, 440, __pyx_L17_except_error) } 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); @@ -54053,6 +72808,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; @@ -54062,8 +72824,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); @@ -54074,6 +72850,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) @@ -54084,8 +72867,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) @@ -54094,9 +72891,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); @@ -54107,6 +72918,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) @@ -54117,41 +72935,69 @@ 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) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_is_empty); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_15))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_15); + if (likely(PyMethod_Check(__pyx_t_14))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_15, function); + __Pyx_DECREF_SET(__pyx_t_14, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_15, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); + __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_14, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __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); @@ -54164,48 +73010,83 @@ 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); + __pyx_t_15 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(1, 451, __pyx_L1_error) + __pyx_t_10 = (__pyx_t_6 == __pyx_t_15); if (__pyx_t_10) { - __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); + /* "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_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_input_arrays); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); __pyx_t_3 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_15))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_15); + if (likely(PyMethod_Check(__pyx_t_14))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_15, function); + __Pyx_DECREF_SET(__pyx_t_14, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_input_arrays}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_15, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); + __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_14, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(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) + /* "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_15 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(1, 453, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_args, __pyx_t_15, 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; } - __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); + /* "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_15 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(1, 454, __pyx_L1_error) + __pyx_t_8 = (__pyx_t_15 != 0); if (!__pyx_t_8) { } else { __pyx_t_10 = __pyx_t_8; @@ -54218,8 +73099,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO goto __pyx_L32_bool_binop_done; } - __pyx_t_16 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(1, 455, __pyx_L1_error) - __pyx_t_8 = (!(__pyx_t_16 != 0)); + /* "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_15 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(1, 455, __pyx_L1_error) + __pyx_t_8 = (!(__pyx_t_15 != 0)); if (!__pyx_t_8) { } else { __pyx_t_10 = __pyx_t_8; @@ -54227,105 +73115,175 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO } __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 455, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_8 = PyObject_IsInstance(__pyx_t_1, __pyx_t_15); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 455, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_8 = PyObject_IsInstance(__pyx_t_1, __pyx_t_14); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 455, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_9 = (!__pyx_t_8); __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)) { - __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":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_15 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(1, 457, __pyx_L1_error) + __pyx_t_14 = PyInt_FromSsize_t(__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + /* "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); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_15)) __PYX_ERR(1, 457, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_14)) __PYX_ERR(1, 457, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(1, 457, __pyx_L1_error); - __pyx_t_15 = 0; + __pyx_t_14 = 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) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_15 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 461, __pyx_L1_error) + __pyx_t_14 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __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); + /* "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_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__call_function); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); __pyx_t_3 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_15))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_15); + if (likely(PyMethod_Check(__pyx_t_14))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_15, function); + __Pyx_DECREF_SET(__pyx_t_14, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_15, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_14, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __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; + __pyx_t_15 = 0; for (;;) { { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_MACROS if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 465, __pyx_L1_error) #endif - if (__pyx_t_16 >= __pyx_temp) break; + if (__pyx_t_15 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_15 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_16); __Pyx_INCREF(__pyx_t_15); __pyx_t_16++; if (unlikely((0 < 0))) __PYX_ERR(1, 465, __pyx_L1_error) + __pyx_t_14 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_15); __Pyx_INCREF(__pyx_t_14); __pyx_t_15++; if (unlikely((0 < 0))) __PYX_ERR(1, 465, __pyx_L1_error) #else - __pyx_t_15 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_14 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); #endif - if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) { - PyObject* sequence = __pyx_t_15; + 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 != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); @@ -54348,24 +73306,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } else { Py_ssize_t index = -1; - __pyx_t_2 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 465, __pyx_L1_error) + __pyx_t_2 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_20 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); - index = 0; __pyx_t_3 = __pyx_t_20(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L38_unpacking_failed; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_19 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); + index = 0; __pyx_t_3 = __pyx_t_19(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L38_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); - index = 1; __pyx_t_1 = __pyx_t_20(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L38_unpacking_failed; + index = 1; __pyx_t_1 = __pyx_t_19(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L38_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_2), 2) < 0) __PYX_ERR(1, 465, __pyx_L1_error) - __pyx_t_20 = NULL; + if (__Pyx_IternextUnpackEndCheck(__pyx_t_19(__pyx_t_2), 2) < 0) __PYX_ERR(1, 465, __pyx_L1_error) + __pyx_t_19 = NULL; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L39_unpacking_done; __pyx_L38_unpacking_failed:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_20 = NULL; + __pyx_t_19 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(1, 465, __pyx_L1_error) __pyx_L39_unpacking_done:; @@ -54375,17 +73333,38 @@ 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; - __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) + /* "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_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_param_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; 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) @@ -54394,20 +73373,27 @@ 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; + __pyx_t_15 = 0; for (;;) { { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_MACROS if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 470, __pyx_L1_error) #endif - if (__pyx_t_16 >= __pyx_temp) break; + if (__pyx_t_15 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely((0 < 0))) __PYX_ERR(1, 470, __pyx_L1_error) + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_15); __Pyx_INCREF(__pyx_t_1); __pyx_t_15++; if (unlikely((0 < 0))) __PYX_ERR(1, 470, __pyx_L1_error) #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 470, __pyx_L1_error) + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { @@ -54420,17 +73406,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_14 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); } else { - __pyx_t_15 = PyList_GET_ITEM(sequence, 0); + __pyx_t_14 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } - __Pyx_INCREF(__pyx_t_15); + __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(__pyx_t_3); #else - __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_14 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif @@ -54440,27 +73426,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_20 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); - index = 0; __pyx_t_15 = __pyx_t_20(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L43_unpacking_failed; - __Pyx_GOTREF(__pyx_t_15); - index = 1; __pyx_t_3 = __pyx_t_20(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L43_unpacking_failed; + __pyx_t_19 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); + index = 0; __pyx_t_14 = __pyx_t_19(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L43_unpacking_failed; + __Pyx_GOTREF(__pyx_t_14); + index = 1; __pyx_t_3 = __pyx_t_19(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L43_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_2), 2) < 0) __PYX_ERR(1, 470, __pyx_L1_error) - __pyx_t_20 = NULL; + if (__Pyx_IternextUnpackEndCheck(__pyx_t_19(__pyx_t_2), 2) < 0) __PYX_ERR(1, 470, __pyx_L1_error) + __pyx_t_19 = NULL; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L44_unpacking_done; __pyx_L43_unpacking_failed:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_20 = NULL; + __pyx_t_19 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(1, 470, __pyx_L1_error) __pyx_L44_unpacking_done:; } - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_15); - __pyx_t_15 = 0; + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_14); + __pyx_t_14 = 0; __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) @@ -54469,6 +73462,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) @@ -54477,9 +73477,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); @@ -54487,6 +73501,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:; @@ -54494,10 +73515,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_XDECREF(__pyx_t_16); __Pyx_XDECREF(__pyx_t_17); __Pyx_XDECREF(__pyx_t_18); - __Pyx_XDECREF(__pyx_t_19); __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -54520,6 +73541,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, @@ -54639,16 +73667,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)) { @@ -54707,6 +73756,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) @@ -54718,9 +73774,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; @@ -54776,27 +73846,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:; @@ -54816,6 +73935,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, @@ -54930,7 +74056,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; - unsigned int __pyx_t_4; + int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); int __pyx_t_7; @@ -54943,11 +74069,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; @@ -54975,11 +74115,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; @@ -55035,6 +74189,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) @@ -55043,6 +74204,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); @@ -55053,6 +74221,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) @@ -55060,8 +74235,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) @@ -55092,9 +74281,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); @@ -55105,6 +74308,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) @@ -55112,8 +74322,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; @@ -55166,14 +74390,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)) { @@ -55232,6 +74484,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; @@ -55259,11 +74518,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) @@ -55275,9 +74555,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) @@ -55308,17 +74602,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) @@ -55327,9 +74649,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; @@ -55398,6 +74734,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) @@ -55406,14 +74749,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); @@ -55443,6 +74807,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, @@ -55584,6 +74955,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) @@ -55598,6 +74976,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) @@ -55623,12 +75008,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) @@ -55654,25 +75060,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) @@ -55689,10 +75144,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; @@ -55700,13 +75169,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:; @@ -55722,6 +75212,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, @@ -55848,11 +75345,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) @@ -55864,9 +75375,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) @@ -55878,13 +75403,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:; @@ -55900,6 +75446,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, @@ -56007,6 +75560,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); @@ -56017,6 +75577,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:; @@ -56030,6 +75597,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, @@ -56133,12 +75707,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; - unsigned int __pyx_t_4; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; 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); @@ -56171,6 +75752,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:; @@ -56185,6 +75773,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, @@ -56289,12 +75884,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyOb PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - unsigned int __pyx_t_5; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; 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); @@ -56330,6 +75932,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:; @@ -56345,6 +75954,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_349_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ @@ -56379,35 +75995,84 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348_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:; @@ -56421,6 +76086,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348_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_351_ta_getFuncTable(PyObject *__pyx_self, @@ -56535,35 +76207,84 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350_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:; @@ -56577,6 +76298,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350_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_353__get_flags(PyObject *__pyx_self, @@ -56709,7 +76437,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352__get_flags(CYTHON_UNUSED PyObject PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - unsigned int __pyx_t_7; + int __pyx_t_7; Py_ssize_t __pyx_t_8; PyObject *(*__pyx_t_9)(PyObject *); int __pyx_t_10; @@ -56718,6 +76446,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352__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) @@ -56727,17 +76462,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352__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) @@ -56774,6 +76537,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352__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) @@ -56810,6 +76580,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352__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 { @@ -56829,17 +76606,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352__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) @@ -56909,6 +76714,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352__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) @@ -56921,6 +76733,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352__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) @@ -56933,16 +76752,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352__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:; @@ -56963,6 +76810,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352__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_355_ta_getFuncInfo(PyObject *__pyx_self, @@ -57072,22 +76926,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_ta_getFuncInfo(CYTHON_UNUSED PyObj PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - unsigned int __pyx_t_7; + int __pyx_t_7; PyObject *__pyx_t_8 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; 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) @@ -57120,6 +77002,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_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) @@ -57150,6 +77039,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_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) @@ -57180,6 +77076,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_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) @@ -57213,6 +77116,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_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) @@ -57221,6 +77131,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_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) @@ -57229,6 +77146,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_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) @@ -57240,6 +77164,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_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:; @@ -57257,6 +77188,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_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_357_ta_getInputParameterInfo(PyObject *__pyx_self, @@ -57381,7 +77319,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_ta_getInputParameterInfo(CYTHON_UN PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - unsigned int __pyx_t_6; + int __pyx_t_6; Py_ssize_t __pyx_t_7; int __pyx_t_8; PyObject *__pyx_t_9 = NULL; @@ -57391,13 +77329,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_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) @@ -57428,6 +77387,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_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); @@ -57459,9 +77425,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_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) @@ -57470,24 +77450,73 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_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) @@ -57524,6 +77553,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_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:; @@ -57542,6 +77578,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_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_359_ta_getOptInputParameterInfo(PyObject *__pyx_self, @@ -57667,7 +77710,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358_ta_getOptInputParameterInfo(CYTHON PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - unsigned int __pyx_t_6; + int __pyx_t_6; Py_ssize_t __pyx_t_7; int __pyx_t_8; int __pyx_t_9; @@ -57677,13 +77720,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358_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) @@ -57714,6 +77778,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358_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); @@ -57745,11 +77816,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358_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) @@ -57764,19 +77849,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358_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) @@ -57807,11 +77927,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358_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) @@ -57842,13 +77976,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358_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:; @@ -57867,6 +78022,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358_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_361_ta_getOutputParameterInfo(PyObject *__pyx_self, @@ -57991,7 +78153,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360_ta_getOutputParameterInfo(CYTHON_U PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - unsigned int __pyx_t_6; + int __pyx_t_6; Py_ssize_t __pyx_t_7; int __pyx_t_8; int __pyx_t_9; @@ -58003,13 +78165,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360_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) @@ -58040,6 +78223,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360_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); @@ -58071,6 +78261,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360_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 { @@ -58100,20 +78297,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360_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) @@ -58150,6 +78382,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360_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:; @@ -58168,6 +78407,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360_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_363_get_defaults_and_docs(PyObject *__pyx_self, @@ -58296,11 +78542,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362_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) @@ -58314,6 +78574,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362_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); @@ -58322,23 +78589,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362_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; @@ -58394,20 +78696,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362_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); @@ -58422,21 +78759,63 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362_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; @@ -58492,6 +78871,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362_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) @@ -58508,6 +78894,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362_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) @@ -58524,14 +78917,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362_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) @@ -58559,18 +78973,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362_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; @@ -58626,39 +79075,109 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362_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); @@ -58672,6 +79191,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362_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:; @@ -58700,6 +79226,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362_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; @@ -58711,13 +79244,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:; @@ -58729,6 +79283,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; @@ -58742,16 +79303,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:; @@ -58763,6 +79352,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; @@ -58773,10 +79369,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; @@ -58790,6 +79400,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; @@ -58801,12 +79418,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; @@ -58820,6 +79458,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; @@ -58831,12 +79476,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; @@ -58850,6 +79516,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; @@ -58862,15 +79535,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:; @@ -58882,6 +79580,13 @@ static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *__pyx_v_hold return __pyx_r; } +/* "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_ACCBANDS( 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_365stream_ACCBANDS(PyObject *__pyx_self, @@ -59062,42 +79767,133 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ACCBANDS(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":36 + * double outrealmiddleband + * double outreallowerband + * 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, 36, __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":37 + * double outreallowerband + * 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":38 + * 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, 38, __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":39 + * 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":40 + * 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, 40, __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":41 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outrealupperband = NaN + */ __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + /* "talib/_stream.pxi":42 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outrealupperband = NaN + * outrealmiddleband = 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, 42, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":43 + * close_data = close.data + * length = check_length3(high, low, close) + * outrealupperband = NaN # <<<<<<<<<<<<<< + * outrealmiddleband = NaN + * outreallowerband = NaN + */ __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":44 + * length = check_length3(high, low, close) + * outrealupperband = NaN + * outrealmiddleband = NaN # <<<<<<<<<<<<<< + * outreallowerband = NaN + * retCode = lib.TA_ACCBANDS( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) + */ __pyx_v_outrealmiddleband = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":45 + * outrealupperband = NaN + * outrealmiddleband = NaN + * outreallowerband = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ACCBANDS( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) + * _ta_check_success("TA_ACCBANDS", retCode) + */ __pyx_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":46 + * outrealmiddleband = NaN + * outreallowerband = NaN + * retCode = lib.TA_ACCBANDS( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ACCBANDS", retCode) + * return outrealupperband , outrealmiddleband , outreallowerband + */ __pyx_v_retCode = TA_ACCBANDS((((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_outrealupperband), (&__pyx_v_outrealmiddleband), (&__pyx_v_outreallowerband)); + /* "talib/_stream.pxi":47 + * outreallowerband = NaN + * retCode = lib.TA_ACCBANDS( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) + * _ta_check_success("TA_ACCBANDS", retCode) # <<<<<<<<<<<<<< + * return outrealupperband , outrealmiddleband , outreallowerband + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ACCBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":48 + * retCode = lib.TA_ACCBANDS( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) + * _ta_check_success("TA_ACCBANDS", retCode) + * return outrealupperband , outrealmiddleband , outreallowerband # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -59120,6 +79916,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ACCBANDS(CYTHON_UNUSED PyObj __pyx_t_5 = 0; goto __pyx_L0; + /* "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_ACCBANDS( 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:; @@ -59138,6 +79941,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ACCBANDS(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_stream.pxi":50 + * 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_ACOS( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_367stream_ACOS(PyObject *__pyx_self, @@ -59257,23 +80067,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366stream_ACOS(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_ACOS", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":69 + * 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, 69, __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":70 + * 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":71 + * 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_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + /* "talib/_stream.pxi":72 + * 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_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":73 + * 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_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/_stream.pxi":74 + * outreal = NaN + * retCode = lib.TA_ACOS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _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(4, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":75 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -59281,6 +80140,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366stream_ACOS(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":50 + * 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_ACOS( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -59294,6 +80160,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366stream_ACOS(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":77 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_369stream_AD(PyObject *__pyx_self, @@ -59468,45 +80341,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368stream_AD(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); + /* "talib/_stream.pxi":99 + * 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, 99, __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":100 + * 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":101 + * 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, 101, __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":102 + * 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":103 + * 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, 103, __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":104 + * 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":105 + * 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, 105, __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":106 + * 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":107 + * 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_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, 107, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":108 + * 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_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":109 + * 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 + */ __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/_stream.pxi":110 + * 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 + * + */ __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, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":111 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -59514,6 +80478,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368stream_AD(CYTHON_UNUSED PyObject *_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":77 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -59530,6 +80501,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368stream_AD(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_stream.pxi":113 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_371stream_ADD(PyObject *__pyx_self, @@ -59668,31 +80646,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370stream_ADD(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_stream.pxi":134 + * 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, 134, __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":135 + * 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":136 + * 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, 136, __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":137 + * 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":138 + * 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_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, 138, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":139 + * 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_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":140 + * 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 + */ __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/_stream.pxi":141 + * 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 + * + */ __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, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":142 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -59700,6 +80741,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370stream_ADD(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":113 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -59714,6 +80762,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370stream_ADD(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":144 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_373stream_ADOSC(PyObject *__pyx_self, @@ -59924,45 +80979,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372stream_ADOSC(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); + /* "talib/_stream.pxi":169 + * 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, 169, __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":170 + * 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":171 + * 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, 171, __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":172 + * 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":173 + * 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, 173, __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":174 + * 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":175 + * 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, 175, __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":176 + * 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":177 + * 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_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, 177, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":178 + * 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_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":179 + * 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_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/_stream.pxi":180 + * 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_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, 180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":181 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -59970,6 +81116,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372stream_ADOSC(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":144 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -59986,6 +81139,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372stream_ADOSC(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":183 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_375stream_ADX(PyObject *__pyx_self, @@ -60161,38 +81321,115 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374stream_ADX(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":206 + * 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, 206, __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":207 + * 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":208 + * 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, 208, __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":209 + * 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":210 + * 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, 210, __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":211 + * 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":212 + * 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_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, 212, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":213 + * 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_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":214 + * 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_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/_stream.pxi":215 + * 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_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, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":216 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -60200,6 +81437,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374stream_ADX(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":183 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -60215,6 +81459,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374stream_ADX(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":218 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_377stream_ADXR(PyObject *__pyx_self, @@ -60390,38 +81641,115 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376stream_ADXR(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":241 + * 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, 241, __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":242 + * 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":243 + * 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, 243, __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":244 + * 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":245 + * 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, 245, __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":246 + * 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":247 + * 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_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, 247, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":248 + * 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_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":249 + * 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_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/_stream.pxi":250 + * 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_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, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":251 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -60429,6 +81757,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376stream_ADXR(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":218 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -60444,6 +81779,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376stream_ADXR(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":253 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_379stream_APO(PyObject *__pyx_self, @@ -60616,23 +81958,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378stream_APO(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_APO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":276 + * 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, 276, __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":277 + * 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":278 + * 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_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + /* "talib/_stream.pxi":279 + * 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_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":280 + * 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_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/_stream.pxi":281 + * 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_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, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":282 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -60640,6 +82031,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378stream_APO(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":253 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -60653,6 +82051,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378stream_APO(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":284 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_381stream_AROON(PyObject *__pyx_self, @@ -60813,33 +82218,103 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380stream_AROON(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_stream.pxi":308 + * double outaroondown + * double outaroonup + * 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, 308, __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":309 + * double outaroonup + * 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":310 + * 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, 310, __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":311 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * outaroondown = NaN + */ __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + /* "talib/_stream.pxi":312 + * low = check_array(low) + * low_data = low.data + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * outaroondown = NaN + * outaroonup = NaN + */ __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, 312, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":313 + * 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_v_outaroondown = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":314 + * 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_v_outaroonup = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":315 + * 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_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/_stream.pxi":316 + * 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_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, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":317 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -60857,6 +82332,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380stream_AROON(CYTHON_UNUSED PyObject __pyx_t_4 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":284 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -60873,6 +82355,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380stream_AROON(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":319 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_383stream_AROONOSC(PyObject *__pyx_self, @@ -61030,31 +82519,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382stream_AROONOSC(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_stream.pxi":341 + * 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, 341, __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":342 + * 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":343 + * 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, 343, __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":344 + * 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":345 + * 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_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, 345, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":346 + * 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_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":347 + * 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 + */ __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/_stream.pxi":348 + * 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 + * + */ __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, 348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":349 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -61062,6 +82614,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382stream_AROONOSC(CYTHON_UNUSED PyObj __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":319 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -61076,6 +82635,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382stream_AROONOSC(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_stream.pxi":351 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_385stream_ASIN(PyObject *__pyx_self, @@ -61195,23 +82761,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384stream_ASIN(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_ASIN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":370 + * 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, 370, __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":371 + * 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":372 + * 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":373 + * 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":374 + * 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 + */ __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/_stream.pxi":375 + * outreal = NaN + * retCode = lib.TA_ASIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _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(4, 375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":376 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -61219,6 +82834,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384stream_ASIN(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":351 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -61232,6 +82854,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384stream_ASIN(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":378 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_387stream_ATAN(PyObject *__pyx_self, @@ -61351,23 +82980,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386stream_ATAN(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_ATAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":397 + * 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, 397, __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":398 + * 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":399 + * 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_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + /* "talib/_stream.pxi":400 + * 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_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":401 + * 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 + */ __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/_stream.pxi":402 + * outreal = NaN + * retCode = lib.TA_ATAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _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(4, 402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":403 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -61375,6 +83053,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386stream_ATAN(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":378 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -61388,6 +83073,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386stream_ATAN(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":405 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_389stream_ATR(PyObject *__pyx_self, @@ -61563,38 +83255,115 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388stream_ATR(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":428 + * 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, 428, __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":429 + * 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":430 + * 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, 430, __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":431 + * 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":432 + * 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, 432, __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":433 + * 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":434 + * 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_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, 434, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":435 + * 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":436 + * 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 + */ __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/_stream.pxi":437 + * 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 + * + */ __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, 437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":438 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -61602,6 +83371,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388stream_ATR(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":405 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -61617,6 +83393,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388stream_ATR(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":440 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_391stream_AVGPRICE(PyObject *__pyx_self, @@ -61791,45 +83574,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390stream_AVGPRICE(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":462 + * int outnbelement + * double outreal + * 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, 462, __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":463 + * double outreal + * 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":464 + * 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, 464, __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":465 + * 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":466 + * 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, 466, __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":467 + * 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":468 + * 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, 468, __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":469 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outreal = NaN + */ __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + /* "talib/_stream.pxi":470 + * 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_t_2 = __pyx_f_5talib_7_ta_lib_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, 470, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":471 + * 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_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":472 + * 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 + */ __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/_stream.pxi":473 + * 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 + * + */ __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, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":474 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -61837,6 +83711,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390stream_AVGPRICE(CYTHON_UNUSED PyObj __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":440 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -61853,6 +83734,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390stream_AVGPRICE(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_stream.pxi":476 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_393stream_AVGDEV(PyObject *__pyx_self, @@ -61991,23 +83879,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392stream_AVGDEV(CYTHON_UNUSED PyObjec __Pyx_RefNannySetupContext("stream_AVGDEV", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":497 + * 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, 497, __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":498 + * 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":499 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_AVGDEV( (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":500 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_AVGDEV( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_AVGDEV", retCode) + */ __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":501 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_AVGDEV( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_AVGDEV", retCode) + * return outreal + */ __pyx_v_retCode = TA_AVGDEV((((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":502 + * outreal = NaN + * retCode = lib.TA_AVGDEV( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_AVGDEV", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":503 + * retCode = lib.TA_AVGDEV( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_AVGDEV", 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, 503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -62015,6 +83952,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392stream_AVGDEV(CYTHON_UNUSED PyObjec __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":476 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -62028,6 +83972,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392stream_AVGDEV(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_stream.pxi":505 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_395stream_BBANDS(PyObject *__pyx_self, @@ -62222,27 +84173,90 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394stream_BBANDS(CYTHON_UNUSED PyObjec __Pyx_RefNannySetupContext("stream_BBANDS", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":533 + * double outrealmiddleband + * double outreallowerband + * 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, 533, __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":534 + * double outreallowerband + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outrealupperband = NaN + */ __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + /* "talib/_stream.pxi":535 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outrealupperband = NaN + * outrealmiddleband = NaN + */ __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + /* "talib/_stream.pxi":536 + * real_data = real.data + * length = real.shape[0] + * outrealupperband = NaN # <<<<<<<<<<<<<< + * outrealmiddleband = NaN + * outreallowerband = NaN + */ __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":537 + * 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":538 + * 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_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":539 + * 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_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/_stream.pxi":540 + * 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_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, 540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":541 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -62265,6 +84279,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394stream_BBANDS(CYTHON_UNUSED PyObjec __pyx_t_4 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":505 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -62281,6 +84302,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394stream_BBANDS(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_stream.pxi":543 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_397stream_BETA(PyObject *__pyx_self, @@ -62438,31 +84466,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_396stream_BETA(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_stream.pxi":566 + * 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, 566, __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":567 + * 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":568 + * 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, 568, __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":569 + * 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":570 + * 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_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, 570, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":571 + * 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_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":572 + * 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_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/_stream.pxi":573 + * 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_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, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":574 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -62470,6 +84561,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_396stream_BETA(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":543 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -62484,6 +84582,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_396stream_BETA(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":576 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_399stream_BOP(PyObject *__pyx_self, @@ -62658,45 +84763,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398stream_BOP(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":598 + * int outnbelement + * double outreal + * 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, 598, __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":599 + * double outreal + * 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":600 + * 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, 600, __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":601 + * 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":602 + * 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, 602, __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":603 + * 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":604 + * 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, 604, __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":605 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outreal = NaN + */ __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + /* "talib/_stream.pxi":606 + * 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_t_2 = __pyx_f_5talib_7_ta_lib_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, 606, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":607 + * 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_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":608 + * 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_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/_stream.pxi":609 + * 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_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, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":610 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -62704,6 +84900,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398stream_BOP(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":576 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -62720,6 +84923,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398stream_BOP(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":612 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_401stream_CCI(PyObject *__pyx_self, @@ -62895,38 +85105,115 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400stream_CCI(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":635 + * 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, 635, __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":636 + * 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":637 + * 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, 637, __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":638 + * 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":639 + * 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, 639, __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":640 + * 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":641 + * 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, 641, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":642 + * 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; + /* "talib/_stream.pxi":643 + * 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":644 + * 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, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":645 + * 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, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -62934,6 +85221,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400stream_CCI(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":612 + * 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:; @@ -62949,6 +85243,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400stream_CCI(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":647 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_403stream_CDL2CROWS(PyObject *__pyx_self, @@ -63123,45 +85424,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402stream_CDL2CROWS(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":669 + * 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, 669, __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":670 + * 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":671 + * 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, 671, __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":672 + * 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":673 + * 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, 673, __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":674 + * 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":675 + * 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, 675, __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":676 + * 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":677 + * 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_2 = __pyx_f_5talib_7_ta_lib_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, 677, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":678 + * 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_v_outinteger = 0; + /* "talib/_stream.pxi":679 + * 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_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/_stream.pxi":680 + * 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_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, 680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":681 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -63169,6 +85561,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402stream_CDL2CROWS(CYTHON_UNUSED PyOb __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":647 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -63185,6 +85584,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402stream_CDL2CROWS(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_stream.pxi":683 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_405stream_CDL3BLACKCROWS(PyObject *__pyx_self, @@ -63359,45 +85765,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404stream_CDL3BLACKCROWS(CYTHON_UNUSED __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":705 + * 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, 705, __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":706 + * 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":707 + * 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, 707, __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":708 + * 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":709 + * 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, 709, __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":710 + * 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":711 + * 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, 711, __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":712 + * 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":713 + * 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_2 = __pyx_f_5talib_7_ta_lib_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, 713, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":714 + * 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_v_outinteger = 0; + /* "talib/_stream.pxi":715 + * 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_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/_stream.pxi":716 + * 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_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, 716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":717 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -63405,6 +85902,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404stream_CDL3BLACKCROWS(CYTHON_UNUSED __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":683 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -63421,6 +85925,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404stream_CDL3BLACKCROWS(CYTHON_UNUSED return __pyx_r; } +/* "talib/_stream.pxi":719 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_407stream_CDL3INSIDE(PyObject *__pyx_self, @@ -63595,45 +86106,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406stream_CDL3INSIDE(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":741 + * 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, 741, __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":742 + * 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":743 + * 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, 743, __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":744 + * 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":745 + * 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, 745, __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":746 + * 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":747 + * 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, 747, __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":748 + * 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":749 + * 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_2 = __pyx_f_5talib_7_ta_lib_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, 749, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":750 + * 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_v_outinteger = 0; + /* "talib/_stream.pxi":751 + * 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_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/_stream.pxi":752 + * 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_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, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":753 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -63641,6 +86243,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406stream_CDL3INSIDE(CYTHON_UNUSED PyO __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":719 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -63657,6 +86266,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406stream_CDL3INSIDE(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_stream.pxi":755 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_409stream_CDL3LINESTRIKE(PyObject *__pyx_self, @@ -63831,45 +86447,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408stream_CDL3LINESTRIKE(CYTHON_UNUSED __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":777 + * 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, 777, __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":778 + * 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":779 + * 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, 779, __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":780 + * 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":781 + * 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, 781, __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":782 + * 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":783 + * 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, 783, __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":784 + * 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":785 + * 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_2 = __pyx_f_5talib_7_ta_lib_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, 785, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":786 + * 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_v_outinteger = 0; + /* "talib/_stream.pxi":787 + * 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 + */ __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/_stream.pxi":788 + * 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 + * + */ __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, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":789 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -63877,6 +86584,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408stream_CDL3LINESTRIKE(CYTHON_UNUSED __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":755 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -63893,6 +86607,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408stream_CDL3LINESTRIKE(CYTHON_UNUSED return __pyx_r; } +/* "talib/_stream.pxi":791 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_411stream_CDL3OUTSIDE(PyObject *__pyx_self, @@ -64067,45 +86788,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410stream_CDL3OUTSIDE(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":813 + * 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, 813, __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":814 + * 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":815 + * 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, 815, __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":816 + * 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":817 + * 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, 817, __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":818 + * 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":819 + * 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, 819, __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":820 + * 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":821 + * 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_2 = __pyx_f_5talib_7_ta_lib_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, 821, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":822 + * 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_v_outinteger = 0; + /* "talib/_stream.pxi":823 + * 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 + */ __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/_stream.pxi":824 + * 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 + * + */ __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, 824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":825 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -64113,6 +86925,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410stream_CDL3OUTSIDE(CYTHON_UNUSED Py __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":791 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -64129,6 +86948,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410stream_CDL3OUTSIDE(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_stream.pxi":827 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_413stream_CDL3STARSINSOUTH(PyObject *__pyx_self, @@ -64303,45 +87129,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412stream_CDL3STARSINSOUTH(CYTHON_UNUS __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":849 + * 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, 849, __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":850 + * 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":851 + * 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, 851, __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":852 + * 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":853 + * 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, 853, __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":854 + * 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":855 + * 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, 855, __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":856 + * 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":857 + * 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_2 = __pyx_f_5talib_7_ta_lib_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, 857, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":858 + * 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_v_outinteger = 0; + /* "talib/_stream.pxi":859 + * 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 + */ __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/_stream.pxi":860 + * 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 + * + */ __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, 860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":861 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -64349,6 +87266,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412stream_CDL3STARSINSOUTH(CYTHON_UNUS __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":827 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -64365,6 +87289,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412stream_CDL3STARSINSOUTH(CYTHON_UNUS return __pyx_r; } +/* "talib/_stream.pxi":863 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_415stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, @@ -64539,45 +87470,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414stream_CDL3WHITESOLDIERS(CYTHON_UNU __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":885 + * 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, 885, __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":886 + * 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":887 + * 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, 887, __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":888 + * 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":889 + * 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, 889, __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":890 + * 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":891 + * 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, 891, __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":892 + * 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":893 + * 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_2 = __pyx_f_5talib_7_ta_lib_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, 893, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":894 + * 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_v_outinteger = 0; + /* "talib/_stream.pxi":895 + * 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_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/_stream.pxi":896 + * 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_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, 896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":897 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -64585,6 +87607,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414stream_CDL3WHITESOLDIERS(CYTHON_UNU __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":863 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -64601,6 +87630,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414stream_CDL3WHITESOLDIERS(CYTHON_UNU return __pyx_r; } +/* "talib/_stream.pxi":899 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_417stream_CDLABANDONEDBABY(PyObject *__pyx_self, @@ -64794,45 +87830,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416stream_CDLABANDONEDBABY(CYTHON_UNUS __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":923 + * 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, 923, __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":924 + * 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":925 + * 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, 925, __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":926 + * 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":927 + * 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, 927, __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":928 + * 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":929 + * 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, 929, __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":930 + * 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":931 + * 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_2 = __pyx_f_5talib_7_ta_lib_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, 931, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":932 + * 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_v_outinteger = 0; + /* "talib/_stream.pxi":933 + * 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_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/_stream.pxi":934 + * 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_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, 934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":935 + * 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_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -64840,6 +87967,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416stream_CDLABANDONEDBABY(CYTHON_UNUS __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":899 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -64856,6 +87990,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416stream_CDLABANDONEDBABY(CYTHON_UNUS return __pyx_r; } +/* "talib/_stream.pxi":937 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_419stream_CDLADVANCEBLOCK(PyObject *__pyx_self, @@ -65030,45 +88171,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418stream_CDLADVANCEBLOCK(CYTHON_UNUSE __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":959 + * 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, 959, __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":960 + * 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":961 + * 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, 961, __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":962 + * 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":963 + * 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, 963, __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":964 + * 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":965 + * 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, 965, __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":966 + * 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":967 + * 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_2 = __pyx_f_5talib_7_ta_lib_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, 967, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":968 + * 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_v_outinteger = 0; + /* "talib/_stream.pxi":969 + * 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 + */ __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/_stream.pxi":970 + * 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_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, 970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":971 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -65076,6 +88308,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418stream_CDLADVANCEBLOCK(CYTHON_UNUSE __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":937 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -65092,6 +88331,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418stream_CDLADVANCEBLOCK(CYTHON_UNUSE return __pyx_r; } +/* "talib/_stream.pxi":973 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_421stream_CDLBELTHOLD(PyObject *__pyx_self, @@ -65266,45 +88512,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420stream_CDLBELTHOLD(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":995 + * 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, 995, __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":996 + * 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":997 + * 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, 997, __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":998 + * 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":999 + * 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, 999, __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":1000 + * 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":1001 + * 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, 1001, __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":1002 + * 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":1003 + * 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_2 = __pyx_f_5talib_7_ta_lib_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, 1003, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1004 + * 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_v_outinteger = 0; + /* "talib/_stream.pxi":1005 + * 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_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/_stream.pxi":1006 + * 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_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, 1006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1007 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -65312,6 +88649,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420stream_CDLBELTHOLD(CYTHON_UNUSED Py __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":973 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -65328,6 +88672,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420stream_CDLBELTHOLD(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_stream.pxi":1009 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_423stream_CDLBREAKAWAY(PyObject *__pyx_self, @@ -65502,45 +88853,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_422stream_CDLBREAKAWAY(CYTHON_UNUSED P __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1031 + * 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, 1031, __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":1032 + * 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":1033 + * 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, 1033, __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":1034 + * 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":1035 + * 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, 1035, __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":1036 + * 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":1037 + * 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, 1037, __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":1038 + * 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":1039 + * 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_2 = __pyx_f_5talib_7_ta_lib_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, 1039, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1040 + * 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_v_outinteger = 0; + /* "talib/_stream.pxi":1041 + * 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_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/_stream.pxi":1042 + * 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_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, 1042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1043 + * 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 + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -65548,6 +88990,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_422stream_CDLBREAKAWAY(CYTHON_UNUSED P __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1009 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -65564,6 +89013,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_422stream_CDLBREAKAWAY(CYTHON_UNUSED P return __pyx_r; } +/* "talib/_stream.pxi":1045 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_425stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, @@ -65738,45 +89194,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_424stream_CDLCLOSINGMARUBOZU(CYTHON_UN __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1067 + * 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, 1067, __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":1068 + * 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":1069 + * 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, 1069, __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":1070 + * 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":1071 + * 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, 1071, __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":1072 + * 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":1073 + * 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, 1073, __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":1074 + * 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":1075 + * 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_2 = __pyx_f_5talib_7_ta_lib_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, 1075, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1076 + * 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_v_outinteger = 0; + /* "talib/_stream.pxi":1077 + * 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_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/_stream.pxi":1078 + * 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_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, 1078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1079 + * 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_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -65784,6 +89331,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_424stream_CDLCLOSINGMARUBOZU(CYTHON_UN __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1045 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -65800,6 +89354,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_424stream_CDLCLOSINGMARUBOZU(CYTHON_UN return __pyx_r; } +/* "talib/_stream.pxi":1081 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_427stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, @@ -65974,45 +89535,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_426stream_CDLCONCEALBABYSWALL(CYTHON_U __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1103 + * 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, 1103, __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":1104 + * 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":1105 + * 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, 1105, __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":1106 + * 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":1107 + * 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, 1107, __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":1108 + * 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":1109 + * 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, 1109, __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":1110 + * 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":1111 + * 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, 1111, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1112 + * 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":1113 + * 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":1114 + * 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, 1114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1115 + * 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, 1115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -66020,6 +89672,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_426stream_CDLCONCEALBABYSWALL(CYTHON_U __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1081 + * 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:; @@ -66036,6 +89695,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_426stream_CDLCONCEALBABYSWALL(CYTHON_U return __pyx_r; } +/* "talib/_stream.pxi":1117 + * 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_429stream_CDLCOUNTERATTACK(PyObject *__pyx_self, @@ -66210,45 +89876,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_428stream_CDLCOUNTERATTACK(CYTHON_UNUS __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1139 + * 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, 1139, __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":1140 + * 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":1141 + * 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, 1141, __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":1142 + * 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":1143 + * 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, 1143, __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":1144 + * 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":1145 + * 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, 1145, __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":1146 + * 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":1147 + * 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, 1147, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1148 + * 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":1149 + * 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":1150 + * 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, 1150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1151 + * 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, 1151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -66256,6 +90013,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_428stream_CDLCOUNTERATTACK(CYTHON_UNUS __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1117 + * 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:; @@ -66272,6 +90036,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_428stream_CDLCOUNTERATTACK(CYTHON_UNUS return __pyx_r; } +/* "talib/_stream.pxi":1153 + * 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_431stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, @@ -66465,45 +90236,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_430stream_CDLDARKCLOUDCOVER(CYTHON_UNU __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1177 + * 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, 1177, __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":1178 + * 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":1179 + * 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, 1179, __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":1180 + * 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":1181 + * 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, 1181, __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":1182 + * 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":1183 + * 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, 1183, __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":1184 + * 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":1185 + * 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, 1185, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1186 + * 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":1187 + * 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":1188 + * 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, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1189 + * 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, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -66511,6 +90373,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_430stream_CDLDARKCLOUDCOVER(CYTHON_UNU __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1153 + * 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:; @@ -66527,6 +90396,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_430stream_CDLDARKCLOUDCOVER(CYTHON_UNU return __pyx_r; } +/* "talib/_stream.pxi":1191 + * 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_433stream_CDLDOJI(PyObject *__pyx_self, @@ -66701,45 +90577,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_432stream_CDLDOJI(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1213 + * 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, 1213, __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":1214 + * 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":1215 + * 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, 1215, __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":1216 + * 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":1217 + * 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, 1217, __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":1218 + * 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":1219 + * 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, 1219, __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":1220 + * 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":1221 + * 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, 1221, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1222 + * 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":1223 + * 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":1224 + * 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, 1224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1225 + * 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, 1225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -66747,6 +90714,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_432stream_CDLDOJI(CYTHON_UNUSED PyObje __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1191 + * 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:; @@ -66763,6 +90737,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_432stream_CDLDOJI(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_stream.pxi":1227 + * 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_435stream_CDLDOJISTAR(PyObject *__pyx_self, @@ -66937,45 +90918,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_434stream_CDLDOJISTAR(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1249 + * 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, 1249, __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":1250 + * 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":1251 + * 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, 1251, __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":1252 + * 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":1253 + * 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, 1253, __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":1254 + * 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":1255 + * 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, 1255, __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":1256 + * 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":1257 + * 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, 1257, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1258 + * 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":1259 + * 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":1260 + * 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, 1260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1261 + * 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, 1261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -66983,6 +91055,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_434stream_CDLDOJISTAR(CYTHON_UNUSED Py __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1227 + * 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:; @@ -66999,6 +91078,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_434stream_CDLDOJISTAR(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_stream.pxi":1263 + * 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_437stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, @@ -67173,45 +91259,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI(CYTHON_UNUS __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1285 + * 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, 1285, __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":1286 + * 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":1287 + * 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, 1287, __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":1288 + * 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":1289 + * 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, 1289, __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":1290 + * 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":1291 + * 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, 1291, __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":1292 + * 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":1293 + * 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, 1293, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1294 + * 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":1295 + * 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":1296 + * 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, 1296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1297 + * 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, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -67219,6 +91396,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI(CYTHON_UNUS __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1263 + * 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:; @@ -67235,6 +91419,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI(CYTHON_UNUS return __pyx_r; } +/* "talib/_stream.pxi":1299 + * 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_439stream_CDLENGULFING(PyObject *__pyx_self, @@ -67409,45 +91600,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_438stream_CDLENGULFING(CYTHON_UNUSED P __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1321 + * 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, 1321, __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":1322 + * 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":1323 + * 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, 1323, __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":1324 + * 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":1325 + * 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, 1325, __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":1326 + * 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":1327 + * 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, 1327, __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":1328 + * 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":1329 + * 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, 1329, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1330 + * 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":1331 + * 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":1332 + * 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, 1332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1333 + * 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, 1333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -67455,6 +91737,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_438stream_CDLENGULFING(CYTHON_UNUSED P __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1299 + * 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:; @@ -67471,6 +91760,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_438stream_CDLENGULFING(CYTHON_UNUSED P return __pyx_r; } +/* "talib/_stream.pxi":1335 + * 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_441stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, @@ -67664,45 +91960,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_440stream_CDLEVENINGDOJISTAR(CYTHON_UN __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1359 + * 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, 1359, __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":1360 + * 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":1361 + * 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, 1361, __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":1362 + * 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":1363 + * 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, 1363, __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":1364 + * 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":1365 + * 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, 1365, __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":1366 + * 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":1367 + * 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, 1367, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1368 + * 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":1369 + * 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":1370 + * 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, 1370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1371 + * 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, 1371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -67710,6 +92097,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_440stream_CDLEVENINGDOJISTAR(CYTHON_UN __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1335 + * 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:; @@ -67726,6 +92120,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_440stream_CDLEVENINGDOJISTAR(CYTHON_UN return __pyx_r; } +/* "talib/_stream.pxi":1373 + * 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_443stream_CDLEVENINGSTAR(PyObject *__pyx_self, @@ -67919,45 +92320,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLEVENINGSTAR(CYTHON_UNUSED __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1397 + * 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, 1397, __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":1398 + * 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":1399 + * 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, 1399, __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":1400 + * 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":1401 + * 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, 1401, __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":1402 + * 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":1403 + * 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, 1403, __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":1404 + * 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":1405 + * 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, 1405, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1406 + * 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":1407 + * 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":1408 + * 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, 1408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1409 + * 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, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -67965,6 +92457,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLEVENINGSTAR(CYTHON_UNUSED __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1373 + * 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:; @@ -67981,6 +92480,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLEVENINGSTAR(CYTHON_UNUSED return __pyx_r; } +/* "talib/_stream.pxi":1411 + * 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_445stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, @@ -68155,45 +92661,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE(CYTHON_U __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1433 + * 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, 1433, __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":1434 + * 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":1435 + * 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, 1435, __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":1436 + * 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":1437 + * 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, 1437, __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":1438 + * 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":1439 + * 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, 1439, __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":1440 + * 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":1441 + * 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, 1441, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1442 + * 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":1443 + * 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":1444 + * 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, 1444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1445 + * 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, 1445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -68201,6 +92798,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE(CYTHON_U __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1411 + * 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:; @@ -68217,6 +92821,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE(CYTHON_U return __pyx_r; } +/* "talib/_stream.pxi":1447 + * 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_447stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, @@ -68391,45 +93002,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI(CYTHON_UNU __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1469 + * 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, 1469, __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":1470 + * 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":1471 + * 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, 1471, __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":1472 + * 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":1473 + * 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, 1473, __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":1474 + * 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":1475 + * 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, 1475, __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":1476 + * 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":1477 + * 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, 1477, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1478 + * 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":1479 + * 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":1480 + * 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, 1480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1481 + * 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, 1481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -68437,6 +93139,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI(CYTHON_UNU __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1447 + * 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:; @@ -68453,6 +93162,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI(CYTHON_UNU return __pyx_r; } +/* "talib/_stream.pxi":1483 + * 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_449stream_CDLHAMMER(PyObject *__pyx_self, @@ -68627,45 +93343,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHAMMER(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1505 + * 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, 1505, __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":1506 + * 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":1507 + * 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, 1507, __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":1508 + * 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":1509 + * 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, 1509, __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":1510 + * 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":1511 + * 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, 1511, __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":1512 + * 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":1513 + * 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, 1513, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1514 + * 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":1515 + * 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":1516 + * 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, 1516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1517 + * 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, 1517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -68673,6 +93480,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHAMMER(CYTHON_UNUSED PyOb __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1483 + * 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:; @@ -68689,6 +93503,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHAMMER(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_stream.pxi":1519 + * 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_451stream_CDLHANGINGMAN(PyObject *__pyx_self, @@ -68863,45 +93684,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHANGINGMAN(CYTHON_UNUSED __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1541 + * 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, 1541, __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":1542 + * 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":1543 + * 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, 1543, __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":1544 + * 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":1545 + * 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, 1545, __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":1546 + * 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":1547 + * 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, 1547, __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":1548 + * 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":1549 + * 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, 1549, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1550 + * 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":1551 + * 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":1552 + * 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, 1552, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1553 + * 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, 1553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -68909,6 +93821,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHANGINGMAN(CYTHON_UNUSED __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1519 + * 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:; @@ -68925,6 +93844,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHANGINGMAN(CYTHON_UNUSED return __pyx_r; } +/* "talib/_stream.pxi":1555 + * 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_453stream_CDLHARAMI(PyObject *__pyx_self, @@ -69099,45 +94025,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHARAMI(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1577 + * 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, 1577, __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":1578 + * 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":1579 + * 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, 1579, __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":1580 + * 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":1581 + * 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, 1581, __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":1582 + * 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":1583 + * 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, 1583, __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":1584 + * 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":1585 + * 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, 1585, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1586 + * 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":1587 + * 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":1588 + * 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, 1588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1589 + * 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, 1589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -69145,6 +94162,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHARAMI(CYTHON_UNUSED PyOb __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1555 + * 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:; @@ -69161,6 +94185,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHARAMI(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_stream.pxi":1591 + * 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_455stream_CDLHARAMICROSS(PyObject *__pyx_self, @@ -69335,45 +94366,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLHARAMICROSS(CYTHON_UNUSED __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1613 + * 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, 1613, __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":1614 + * 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":1615 + * 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, 1615, __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":1616 + * 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":1617 + * 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, 1617, __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":1618 + * 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":1619 + * 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, 1619, __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":1620 + * 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":1621 + * 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, 1621, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1622 + * 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":1623 + * 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":1624 + * 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, 1624, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1625 + * 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, 1625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -69381,6 +94503,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLHARAMICROSS(CYTHON_UNUSED __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1591 + * 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:; @@ -69397,6 +94526,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLHARAMICROSS(CYTHON_UNUSED return __pyx_r; } +/* "talib/_stream.pxi":1627 + * 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_457stream_CDLHIGHWAVE(PyObject *__pyx_self, @@ -69571,45 +94707,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLHIGHWAVE(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1649 + * 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, 1649, __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":1650 + * 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":1651 + * 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, 1651, __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":1652 + * 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":1653 + * 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, 1653, __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":1654 + * 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":1655 + * 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, 1655, __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":1656 + * 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":1657 + * 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, 1657, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1658 + * 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":1659 + * 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":1660 + * 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, 1660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1661 + * 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, 1661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -69617,6 +94844,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLHIGHWAVE(CYTHON_UNUSED Py __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1627 + * 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:; @@ -69633,6 +94867,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLHIGHWAVE(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_stream.pxi":1663 + * 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_459stream_CDLHIKKAKE(PyObject *__pyx_self, @@ -69807,45 +95048,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_CDLHIKKAKE(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1685 + * 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, 1685, __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":1686 + * 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":1687 + * 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, 1687, __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":1688 + * 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":1689 + * 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, 1689, __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":1690 + * 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":1691 + * 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, 1691, __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":1692 + * 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":1693 + * 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, 1693, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1694 + * 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":1695 + * 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":1696 + * 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, 1696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1697 + * 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, 1697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -69853,6 +95185,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_CDLHIKKAKE(CYTHON_UNUSED PyO __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1663 + * 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:; @@ -69869,6 +95208,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_CDLHIKKAKE(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_stream.pxi":1699 + * 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_461stream_CDLHIKKAKEMOD(PyObject *__pyx_self, @@ -70043,45 +95389,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD(CYTHON_UNUSED __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1721 + * 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, 1721, __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":1722 + * 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":1723 + * 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, 1723, __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":1724 + * 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":1725 + * 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, 1725, __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":1726 + * 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":1727 + * 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, 1727, __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":1728 + * 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":1729 + * 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, 1729, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1730 + * 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":1731 + * 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":1732 + * 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, 1732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1733 + * 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, 1733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -70089,6 +95526,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD(CYTHON_UNUSED __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1699 + * 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:; @@ -70105,6 +95549,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD(CYTHON_UNUSED return __pyx_r; } +/* "talib/_stream.pxi":1735 + * 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_463stream_CDLHOMINGPIGEON(PyObject *__pyx_self, @@ -70279,45 +95730,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON(CYTHON_UNUSE __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1757 + * 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, 1757, __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":1758 + * 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":1759 + * 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, 1759, __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":1760 + * 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":1761 + * 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, 1761, __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":1762 + * 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":1763 + * 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, 1763, __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":1764 + * 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":1765 + * 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, 1765, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1766 + * 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":1767 + * 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":1768 + * 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, 1768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1769 + * 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, 1769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -70325,6 +95867,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON(CYTHON_UNUSE __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1735 + * 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:; @@ -70341,6 +95890,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON(CYTHON_UNUSE return __pyx_r; } +/* "talib/_stream.pxi":1771 + * 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_465stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, @@ -70515,45 +96071,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS(CYTHON_UN __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1793 + * 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, 1793, __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":1794 + * 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":1795 + * 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, 1795, __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":1796 + * 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":1797 + * 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, 1797, __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":1798 + * 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":1799 + * 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, 1799, __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":1800 + * 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":1801 + * 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, 1801, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1802 + * 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":1803 + * 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":1804 + * 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, 1804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1805 + * 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, 1805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -70561,6 +96208,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS(CYTHON_UN __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1771 + * 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:; @@ -70577,6 +96231,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS(CYTHON_UN return __pyx_r; } +/* "talib/_stream.pxi":1807 + * 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_467stream_CDLINNECK(PyObject *__pyx_self, @@ -70751,45 +96412,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLINNECK(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1829 + * 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, 1829, __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":1830 + * 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":1831 + * 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, 1831, __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":1832 + * 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":1833 + * 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, 1833, __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":1834 + * 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":1835 + * 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, 1835, __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":1836 + * 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":1837 + * 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, 1837, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1838 + * 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":1839 + * 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":1840 + * 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, 1840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1841 + * 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, 1841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -70797,6 +96549,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLINNECK(CYTHON_UNUSED PyOb __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1807 + * 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:; @@ -70813,6 +96572,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLINNECK(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_stream.pxi":1843 + * 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_469stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, @@ -70987,45 +96753,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER(CYTHON_UNU __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1865 + * 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, 1865, __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":1866 + * 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":1867 + * 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, 1867, __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":1868 + * 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":1869 + * 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, 1869, __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":1870 + * 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":1871 + * 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, 1871, __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":1872 + * 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":1873 + * 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, 1873, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1874 + * 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":1875 + * 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":1876 + * 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, 1876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1877 + * 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, 1877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -71033,6 +96890,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER(CYTHON_UNU __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1843 + * 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:; @@ -71049,6 +96913,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER(CYTHON_UNU return __pyx_r; } +/* "talib/_stream.pxi":1879 + * 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_471stream_CDLKICKING(PyObject *__pyx_self, @@ -71223,45 +97094,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLKICKING(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1901 + * 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, 1901, __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":1902 + * 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":1903 + * 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, 1903, __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":1904 + * 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":1905 + * 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, 1905, __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":1906 + * 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":1907 + * 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, 1907, __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":1908 + * 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":1909 + * 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, 1909, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1910 + * 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":1911 + * 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":1912 + * 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, 1912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1913 + * 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, 1913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -71269,6 +97231,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLKICKING(CYTHON_UNUSED PyO __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1879 + * 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:; @@ -71285,6 +97254,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLKICKING(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_stream.pxi":1915 + * 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_473stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, @@ -71459,45 +97435,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_CDLKICKINGBYLENGTH(CYTHON_UN __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1937 + * 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, 1937, __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":1938 + * 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":1939 + * 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, 1939, __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":1940 + * 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":1941 + * 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, 1941, __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":1942 + * 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":1943 + * 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, 1943, __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":1944 + * 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":1945 + * 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, 1945, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1946 + * 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":1947 + * 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":1948 + * 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, 1948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1949 + * 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, 1949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -71505,6 +97572,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_CDLKICKINGBYLENGTH(CYTHON_UN __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1915 + * 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:; @@ -71521,6 +97595,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_CDLKICKINGBYLENGTH(CYTHON_UN return __pyx_r; } +/* "talib/_stream.pxi":1951 + * 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_475stream_CDLLADDERBOTTOM(PyObject *__pyx_self, @@ -71695,45 +97776,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM(CYTHON_UNUSE __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":1973 + * 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, 1973, __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":1974 + * 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":1975 + * 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, 1975, __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":1976 + * 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":1977 + * 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, 1977, __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":1978 + * 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":1979 + * 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, 1979, __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":1980 + * 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":1981 + * 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, 1981, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":1982 + * 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":1983 + * 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":1984 + * 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, 1984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":1985 + * 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, 1985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -71741,6 +97913,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM(CYTHON_UNUSE __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1951 + * 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:; @@ -71757,6 +97936,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM(CYTHON_UNUSE return __pyx_r; } +/* "talib/_stream.pxi":1987 + * 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_477stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, @@ -71931,45 +98117,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI(CYTHON_UNU __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2009 + * 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, 2009, __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":2010 + * 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":2011 + * 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, 2011, __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":2012 + * 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":2013 + * 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, 2013, __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":2014 + * 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":2015 + * 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, 2015, __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":2016 + * 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":2017 + * 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, 2017, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2018 + * 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":2019 + * 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":2020 + * 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, 2020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2021 + * 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, 2021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -71977,6 +98254,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI(CYTHON_UNU __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":1987 + * 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:; @@ -71993,6 +98277,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI(CYTHON_UNU return __pyx_r; } +/* "talib/_stream.pxi":2023 + * 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_479stream_CDLLONGLINE(PyObject *__pyx_self, @@ -72167,45 +98458,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_CDLLONGLINE(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2045 + * 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, 2045, __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":2046 + * 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":2047 + * 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, 2047, __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":2048 + * 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":2049 + * 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, 2049, __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":2050 + * 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":2051 + * 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, 2051, __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":2052 + * 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":2053 + * 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, 2053, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2054 + * 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":2055 + * 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":2056 + * 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, 2056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2057 + * 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, 2057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -72213,6 +98595,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_CDLLONGLINE(CYTHON_UNUSED Py __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2023 + * 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:; @@ -72229,6 +98618,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_CDLLONGLINE(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_stream.pxi":2059 + * 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_481stream_CDLMARUBOZU(PyObject *__pyx_self, @@ -72403,45 +98799,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_CDLMARUBOZU(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2081 + * 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, 2081, __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":2082 + * 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":2083 + * 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, 2083, __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":2084 + * 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":2085 + * 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, 2085, __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":2086 + * 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":2087 + * 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, 2087, __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":2088 + * 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":2089 + * 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, 2089, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2090 + * 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":2091 + * 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":2092 + * 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, 2092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2093 + * 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, 2093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -72449,6 +98936,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_CDLMARUBOZU(CYTHON_UNUSED Py __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2059 + * 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:; @@ -72465,6 +98959,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_CDLMARUBOZU(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_stream.pxi":2095 + * 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_483stream_CDLMATCHINGLOW(PyObject *__pyx_self, @@ -72639,45 +99140,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLMATCHINGLOW(CYTHON_UNUSED __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2117 + * 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, 2117, __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":2118 + * 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":2119 + * 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, 2119, __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":2120 + * 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":2121 + * 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, 2121, __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":2122 + * 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":2123 + * 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, 2123, __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":2124 + * 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":2125 + * 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, 2125, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2126 + * 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":2127 + * 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":2128 + * 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, 2128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2129 + * 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, 2129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -72685,6 +99277,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLMATCHINGLOW(CYTHON_UNUSED __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2095 + * 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:; @@ -72701,6 +99300,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLMATCHINGLOW(CYTHON_UNUSED return __pyx_r; } +/* "talib/_stream.pxi":2131 + * 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_485stream_CDLMATHOLD(PyObject *__pyx_self, @@ -72894,45 +99500,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLMATHOLD(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2155 + * 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, 2155, __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":2156 + * 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":2157 + * 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, 2157, __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":2158 + * 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":2159 + * 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, 2159, __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":2160 + * 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":2161 + * 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, 2161, __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":2162 + * 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":2163 + * 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, 2163, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2164 + * 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":2165 + * 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":2166 + * 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, 2166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2167 + * 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, 2167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -72940,6 +99637,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLMATHOLD(CYTHON_UNUSED PyO __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2131 + * 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:; @@ -72956,6 +99660,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLMATHOLD(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_stream.pxi":2169 + * 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_487stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, @@ -73149,45 +99860,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR(CYTHON_UN __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2193 + * 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, 2193, __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":2194 + * 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":2195 + * 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, 2195, __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":2196 + * 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":2197 + * 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, 2197, __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":2198 + * 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":2199 + * 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, 2199, __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":2200 + * 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":2201 + * 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, 2201, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2202 + * 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":2203 + * 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":2204 + * 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, 2204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2205 + * 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, 2205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -73195,6 +99997,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR(CYTHON_UN __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2169 + * 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:; @@ -73211,6 +100020,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR(CYTHON_UN return __pyx_r; } +/* "talib/_stream.pxi":2207 + * 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_489stream_CDLMORNINGSTAR(PyObject *__pyx_self, @@ -73404,45 +100220,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLMORNINGSTAR(CYTHON_UNUSED __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2231 + * 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, 2231, __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":2232 + * 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":2233 + * 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, 2233, __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":2234 + * 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":2235 + * 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, 2235, __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":2236 + * 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":2237 + * 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, 2237, __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":2238 + * 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":2239 + * 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, 2239, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2240 + * 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":2241 + * 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":2242 + * 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, 2242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2243 + * 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, 2243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -73450,6 +100357,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLMORNINGSTAR(CYTHON_UNUSED __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2207 + * 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:; @@ -73466,6 +100380,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLMORNINGSTAR(CYTHON_UNUSED return __pyx_r; } +/* "talib/_stream.pxi":2245 + * 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_491stream_CDLONNECK(PyObject *__pyx_self, @@ -73640,45 +100561,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLONNECK(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2267 + * 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, 2267, __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":2268 + * 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":2269 + * 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, 2269, __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":2270 + * 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":2271 + * 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, 2271, __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":2272 + * 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":2273 + * 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, 2273, __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":2274 + * 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":2275 + * 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, 2275, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2276 + * 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":2277 + * 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":2278 + * 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, 2278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2279 + * 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, 2279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -73686,6 +100698,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLONNECK(CYTHON_UNUSED PyOb __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2245 + * 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:; @@ -73702,6 +100721,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLONNECK(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_stream.pxi":2281 + * 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_493stream_CDLPIERCING(PyObject *__pyx_self, @@ -73876,45 +100902,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLPIERCING(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2303 + * 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, 2303, __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":2304 + * 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":2305 + * 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, 2305, __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":2306 + * 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":2307 + * 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, 2307, __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":2308 + * 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":2309 + * 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, 2309, __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":2310 + * 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":2311 + * 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, 2311, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2312 + * 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":2313 + * 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":2314 + * 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, 2314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2315 + * 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, 2315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -73922,6 +101039,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLPIERCING(CYTHON_UNUSED Py __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2281 + * 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:; @@ -73938,6 +101062,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLPIERCING(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_stream.pxi":2317 + * 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_495stream_CDLRICKSHAWMAN(PyObject *__pyx_self, @@ -74112,45 +101243,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN(CYTHON_UNUSED __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2339 + * 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, 2339, __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":2340 + * 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":2341 + * 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, 2341, __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":2342 + * 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":2343 + * 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, 2343, __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":2344 + * 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":2345 + * 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, 2345, __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":2346 + * 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":2347 + * 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, 2347, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2348 + * 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":2349 + * 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":2350 + * 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, 2350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2351 + * 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, 2351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -74158,6 +101380,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN(CYTHON_UNUSED __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2317 + * 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:; @@ -74174,6 +101403,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN(CYTHON_UNUSED return __pyx_r; } +/* "talib/_stream.pxi":2353 + * 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_497stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, @@ -74348,45 +101584,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS(CYTHON_U __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2375 + * 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, 2375, __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":2376 + * 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":2377 + * 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, 2377, __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":2378 + * 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":2379 + * 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, 2379, __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":2380 + * 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":2381 + * 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, 2381, __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":2382 + * 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":2383 + * 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, 2383, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2384 + * 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":2385 + * 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":2386 + * 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, 2386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2387 + * 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, 2387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -74394,6 +101721,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS(CYTHON_U __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2353 + * 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:; @@ -74410,6 +101744,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS(CYTHON_U return __pyx_r; } +/* "talib/_stream.pxi":2389 + * 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_499stream_CDLSEPARATINGLINES(PyObject *__pyx_self, @@ -74584,45 +101925,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES(CYTHON_UN __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2411 + * 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, 2411, __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":2412 + * 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":2413 + * 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, 2413, __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":2414 + * 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":2415 + * 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, 2415, __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":2416 + * 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":2417 + * 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, 2417, __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":2418 + * 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":2419 + * 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, 2419, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2420 + * 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":2421 + * 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":2422 + * 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, 2422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2423 + * 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, 2423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -74630,6 +102062,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES(CYTHON_UN __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2389 + * 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:; @@ -74646,6 +102085,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES(CYTHON_UN return __pyx_r; } +/* "talib/_stream.pxi":2425 + * 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_501stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, @@ -74820,45 +102266,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR(CYTHON_UNUSE __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2447 + * 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, 2447, __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":2448 + * 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":2449 + * 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, 2449, __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":2450 + * 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":2451 + * 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, 2451, __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":2452 + * 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":2453 + * 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, 2453, __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":2454 + * 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":2455 + * 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, 2455, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2456 + * 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":2457 + * 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":2458 + * 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, 2458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2459 + * 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, 2459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -74866,6 +102403,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR(CYTHON_UNUSE __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2425 + * 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:; @@ -74882,6 +102426,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR(CYTHON_UNUSE return __pyx_r; } +/* "talib/_stream.pxi":2461 + * 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_503stream_CDLSHORTLINE(PyObject *__pyx_self, @@ -75056,45 +102607,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLSHORTLINE(CYTHON_UNUSED P __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2483 + * 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, 2483, __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":2484 + * 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":2485 + * 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, 2485, __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":2486 + * 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":2487 + * 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, 2487, __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":2488 + * 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":2489 + * 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, 2489, __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":2490 + * 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":2491 + * 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, 2491, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2492 + * 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":2493 + * 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":2494 + * 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, 2494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2495 + * 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, 2495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -75102,6 +102744,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLSHORTLINE(CYTHON_UNUSED P __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2461 + * 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:; @@ -75118,6 +102767,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLSHORTLINE(CYTHON_UNUSED P return __pyx_r; } +/* "talib/_stream.pxi":2497 + * 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_505stream_CDLSPINNINGTOP(PyObject *__pyx_self, @@ -75292,45 +102948,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLSPINNINGTOP(CYTHON_UNUSED __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2519 + * 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, 2519, __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":2520 + * 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":2521 + * 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, 2521, __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":2522 + * 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":2523 + * 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, 2523, __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":2524 + * 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":2525 + * 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, 2525, __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":2526 + * 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":2527 + * 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, 2527, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2528 + * 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":2529 + * 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":2530 + * 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, 2530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2531 + * 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, 2531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -75338,6 +103085,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLSPINNINGTOP(CYTHON_UNUSED __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2497 + * 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:; @@ -75354,6 +103108,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLSPINNINGTOP(CYTHON_UNUSED return __pyx_r; } +/* "talib/_stream.pxi":2533 + * 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_507stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, @@ -75528,45 +103289,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN(CYTHON_UNU __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2555 + * 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, 2555, __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":2556 + * 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":2557 + * 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, 2557, __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":2558 + * 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":2559 + * 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, 2559, __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":2560 + * 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":2561 + * 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, 2561, __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":2562 + * 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":2563 + * 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, 2563, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2564 + * 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":2565 + * 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":2566 + * 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, 2566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2567 + * 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, 2567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -75574,6 +103426,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN(CYTHON_UNU __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2533 + * 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:; @@ -75590,6 +103449,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN(CYTHON_UNU return __pyx_r; } +/* "talib/_stream.pxi":2569 + * 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_509stream_CDLSTICKSANDWICH(PyObject *__pyx_self, @@ -75764,45 +103630,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH(CYTHON_UNUS __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2591 + * 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, 2591, __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":2592 + * 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":2593 + * 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, 2593, __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":2594 + * 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":2595 + * 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, 2595, __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":2596 + * 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":2597 + * 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, 2597, __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":2598 + * 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":2599 + * 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, 2599, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2600 + * 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":2601 + * 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":2602 + * 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, 2602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2603 + * 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, 2603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -75810,6 +103767,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH(CYTHON_UNUS __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2569 + * 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:; @@ -75826,6 +103790,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH(CYTHON_UNUS return __pyx_r; } +/* "talib/_stream.pxi":2605 + * 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_511stream_CDLTAKURI(PyObject *__pyx_self, @@ -76000,45 +103971,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLTAKURI(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2627 + * 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, 2627, __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":2628 + * 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":2629 + * 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, 2629, __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":2630 + * 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":2631 + * 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, 2631, __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":2632 + * 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":2633 + * 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, 2633, __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":2634 + * 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":2635 + * 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, 2635, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2636 + * 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":2637 + * 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":2638 + * 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, 2638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2639 + * 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, 2639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -76046,6 +104108,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLTAKURI(CYTHON_UNUSED PyOb __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2605 + * 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:; @@ -76062,6 +104131,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLTAKURI(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_stream.pxi":2641 + * 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_513stream_CDLTASUKIGAP(PyObject *__pyx_self, @@ -76236,45 +104312,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLTASUKIGAP(CYTHON_UNUSED P __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2663 + * 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, 2663, __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":2664 + * 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":2665 + * 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, 2665, __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":2666 + * 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":2667 + * 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, 2667, __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":2668 + * 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":2669 + * 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, 2669, __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":2670 + * 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":2671 + * 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, 2671, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2672 + * 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":2673 + * 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":2674 + * 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, 2674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2675 + * 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, 2675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -76282,6 +104449,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLTASUKIGAP(CYTHON_UNUSED P __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2641 + * 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:; @@ -76298,6 +104472,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLTASUKIGAP(CYTHON_UNUSED P return __pyx_r; } +/* "talib/_stream.pxi":2677 + * 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_515stream_CDLTHRUSTING(PyObject *__pyx_self, @@ -76472,45 +104653,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CDLTHRUSTING(CYTHON_UNUSED P __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2699 + * 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, 2699, __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":2700 + * 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":2701 + * 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, 2701, __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":2702 + * 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":2703 + * 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, 2703, __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":2704 + * 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":2705 + * 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, 2705, __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":2706 + * 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":2707 + * 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, 2707, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2708 + * 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":2709 + * 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":2710 + * 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, 2710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2711 + * 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, 2711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -76518,6 +104790,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CDLTHRUSTING(CYTHON_UNUSED P __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2677 + * 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:; @@ -76534,6 +104813,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CDLTHRUSTING(CYTHON_UNUSED P return __pyx_r; } +/* "talib/_stream.pxi":2713 + * 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_517stream_CDLTRISTAR(PyObject *__pyx_self, @@ -76708,45 +104994,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_516stream_CDLTRISTAR(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2735 + * 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, 2735, __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":2736 + * 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":2737 + * 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, 2737, __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":2738 + * 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":2739 + * 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, 2739, __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":2740 + * 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":2741 + * 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, 2741, __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":2742 + * 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":2743 + * 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, 2743, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2744 + * 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":2745 + * 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":2746 + * 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, 2746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2747 + * 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, 2747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -76754,6 +105131,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_516stream_CDLTRISTAR(CYTHON_UNUSED PyO __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2713 + * 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:; @@ -76770,6 +105154,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_516stream_CDLTRISTAR(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_stream.pxi":2749 + * 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_519stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, @@ -76944,45 +105335,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER(CYTHON_UNUSE __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2771 + * 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, 2771, __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":2772 + * 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":2773 + * 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, 2773, __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":2774 + * 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":2775 + * 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, 2775, __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":2776 + * 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":2777 + * 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, 2777, __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":2778 + * 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":2779 + * 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, 2779, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2780 + * 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":2781 + * 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":2782 + * 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, 2782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2783 + * 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, 2783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -76990,6 +105472,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER(CYTHON_UNUSE __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2749 + * 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:; @@ -77006,6 +105495,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER(CYTHON_UNUSE return __pyx_r; } +/* "talib/_stream.pxi":2785 + * 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_521stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, @@ -77180,45 +105676,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS(CYTHON_UN __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2807 + * 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, 2807, __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":2808 + * 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":2809 + * 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, 2809, __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":2810 + * 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":2811 + * 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, 2811, __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":2812 + * 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":2813 + * 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, 2813, __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":2814 + * 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":2815 + * 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, 2815, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2816 + * 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":2817 + * 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":2818 + * 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, 2818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2819 + * 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, 2819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -77226,6 +105813,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS(CYTHON_UN __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2785 + * 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:; @@ -77242,6 +105836,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS(CYTHON_UN return __pyx_r; } +/* "talib/_stream.pxi":2821 + * 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_523stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, @@ -77416,45 +106017,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS(CYTHON_U __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":2843 + * 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, 2843, __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":2844 + * 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":2845 + * 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, 2845, __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":2846 + * 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":2847 + * 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, 2847, __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":2848 + * 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":2849 + * 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, 2849, __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":2850 + * 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":2851 + * 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, 2851, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2852 + * 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":2853 + * 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":2854 + * 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, 2854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2855 + * 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, 2855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -77462,6 +106154,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS(CYTHON_U __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2821 + * 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:; @@ -77478,6 +106177,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS(CYTHON_U return __pyx_r; } +/* "talib/_stream.pxi":2857 + * 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_525stream_CEIL(PyObject *__pyx_self, @@ -77597,23 +106303,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_CEIL(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_CEIL", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":2876 + * 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, 2876, __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":2877 + * 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":2878 + * 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":2879 + * 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":2880 + * 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":2881 + * 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, 2881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2882 + * 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, 2882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -77621,6 +106376,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_CEIL(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2857 + * 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:; @@ -77634,6 +106396,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_CEIL(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":2884 + * 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_527stream_CMO(PyObject *__pyx_self, @@ -77772,23 +106541,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_CMO(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_CMO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":2905 + * 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, 2905, __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":2906 + * 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":2907 + * 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":2908 + * 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":2909 + * 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":2910 + * 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, 2910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2911 + * 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, 2911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -77796,6 +106614,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_CMO(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2884 + * 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:; @@ -77809,6 +106634,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_CMO(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":2913 + * 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_529stream_CORREL(PyObject *__pyx_self, @@ -77966,31 +106798,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_CORREL(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_stream.pxi":2936 + * 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, 2936, __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":2937 + * 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":2938 + * 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, 2938, __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":2939 + * 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":2940 + * 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, 2940, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":2941 + * 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":2942 + * 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":2943 + * 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, 2943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2944 + * 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, 2944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -77998,6 +106893,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_CORREL(CYTHON_UNUSED PyObjec __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2913 + * 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:; @@ -78012,6 +106914,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_CORREL(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_stream.pxi":2946 + * 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_531stream_COS(PyObject *__pyx_self, @@ -78131,23 +107040,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_530stream_COS(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_COS", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":2965 + * 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, 2965, __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":2966 + * 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":2967 + * 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":2968 + * 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":2969 + * 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":2970 + * 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, 2970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2971 + * 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, 2971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -78155,6 +107113,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_530stream_COS(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2946 + * 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:; @@ -78168,6 +107133,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_530stream_COS(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":2973 + * 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_533stream_COSH(PyObject *__pyx_self, @@ -78287,23 +107259,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_COSH(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_COSH", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":2992 + * 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, 2992, __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":2993 + * 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":2994 + * 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":2995 + * 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":2996 + * 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":2997 + * 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, 2997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":2998 + * 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, 2998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -78311,6 +107332,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_COSH(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":2973 + * 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:; @@ -78324,6 +107352,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_COSH(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":3000 + * 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_535stream_DEMA(PyObject *__pyx_self, @@ -78462,23 +107497,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_DEMA(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_DEMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3021 + * 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, 3021, __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":3022 + * 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":3023 + * 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":3024 + * 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":3025 + * 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":3026 + * 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, 3026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3027 + * 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, 3027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -78486,6 +107570,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_DEMA(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3000 + * 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:; @@ -78499,6 +107590,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_DEMA(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":3029 + * 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_537stream_DIV(PyObject *__pyx_self, @@ -78637,31 +107735,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_DIV(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_stream.pxi":3050 + * 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, 3050, __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":3051 + * 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":3052 + * 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, 3052, __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":3053 + * 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":3054 + * 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, 3054, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":3055 + * 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":3056 + * 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":3057 + * 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, 3057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3058 + * 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, 3058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -78669,6 +107830,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_DIV(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3029 + * 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:; @@ -78683,6 +107851,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_DIV(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":3060 + * 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_539stream_DX(PyObject *__pyx_self, @@ -78858,38 +108033,115 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_DX(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":3083 + * 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, 3083, __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":3084 + * 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":3085 + * 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, 3085, __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":3086 + * 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":3087 + * 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, 3087, __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":3088 + * 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":3089 + * 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, 3089, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":3090 + * 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":3091 + * 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":3092 + * 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, 3092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3093 + * 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, 3093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -78897,6 +108149,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_DX(CYTHON_UNUSED PyObject *_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3060 + * 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:; @@ -78912,6 +108171,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_DX(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_stream.pxi":3095 + * 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_541stream_EMA(PyObject *__pyx_self, @@ -79050,23 +108316,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_EMA(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_EMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3116 + * 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, 3116, __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":3117 + * 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":3118 + * 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":3119 + * 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":3120 + * 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":3121 + * 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, 3121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3122 + * 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, 3122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -79074,6 +108389,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_EMA(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3095 + * 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:; @@ -79087,6 +108409,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_EMA(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":3124 + * 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_543stream_EXP(PyObject *__pyx_self, @@ -79206,23 +108535,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_EXP(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_EXP", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3143 + * 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, 3143, __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":3144 + * 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":3145 + * 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":3146 + * 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":3147 + * 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":3148 + * 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, 3148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3149 + * 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, 3149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -79230,6 +108608,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_EXP(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3124 + * 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:; @@ -79243,6 +108628,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_EXP(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":3151 + * 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_545stream_FLOOR(PyObject *__pyx_self, @@ -79362,23 +108754,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_FLOOR(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_FLOOR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3170 + * 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, 3170, __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":3171 + * 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":3172 + * 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":3173 + * 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":3174 + * 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":3175 + * 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, 3175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3176 + * 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, 3176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -79386,6 +108827,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_FLOOR(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3151 + * 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:; @@ -79399,6 +108847,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_FLOOR(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":3178 + * 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_547stream_HT_DCPERIOD(PyObject *__pyx_self, @@ -79518,23 +108973,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_DCPERIOD(CYTHON_UNUSED Py __Pyx_RefNannySetupContext("stream_HT_DCPERIOD", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3197 + * 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, 3197, __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":3198 + * 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":3199 + * 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":3200 + * 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":3201 + * 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":3202 + * 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, 3202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3203 + * 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, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -79542,6 +109046,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_DCPERIOD(CYTHON_UNUSED Py __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3178 + * 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:; @@ -79555,6 +109066,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_DCPERIOD(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_stream.pxi":3205 + * 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_549stream_HT_DCPHASE(PyObject *__pyx_self, @@ -79674,23 +109192,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_HT_DCPHASE(CYTHON_UNUSED PyO __Pyx_RefNannySetupContext("stream_HT_DCPHASE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3224 + * 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, 3224, __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":3225 + * 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":3226 + * 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":3227 + * 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":3228 + * 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":3229 + * 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, 3229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3230 + * 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, 3230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -79698,6 +109265,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_HT_DCPHASE(CYTHON_UNUSED PyO __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3205 + * 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:; @@ -79711,6 +109285,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_HT_DCPHASE(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_stream.pxi":3232 + * 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_551stream_HT_PHASOR(PyObject *__pyx_self, @@ -79833,25 +109414,81 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_HT_PHASOR(CYTHON_UNUSED PyOb __Pyx_RefNannySetupContext("stream_HT_PHASOR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3253 + * 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, 3253, __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":3254 + * 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":3255 + * 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":3256 + * 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":3257 + * 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":3258 + * 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":3259 + * 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, 3259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3260 + * 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, 3260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -79869,6 +109506,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_HT_PHASOR(CYTHON_UNUSED PyOb __pyx_t_3 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3232 + * 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:; @@ -79884,6 +109528,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_HT_PHASOR(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_stream.pxi":3262 + * 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_553stream_HT_SINE(PyObject *__pyx_self, @@ -80006,25 +109657,81 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_HT_SINE(CYTHON_UNUSED PyObje __Pyx_RefNannySetupContext("stream_HT_SINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3283 + * 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, 3283, __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":3284 + * 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":3285 + * 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":3286 + * 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":3287 + * 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":3288 + * 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":3289 + * 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, 3289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3290 + * 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, 3290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -80042,6 +109749,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_HT_SINE(CYTHON_UNUSED PyObje __pyx_t_3 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3262 + * 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:; @@ -80057,6 +109771,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_HT_SINE(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_stream.pxi":3292 + * 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_555stream_HT_TRENDLINE(PyObject *__pyx_self, @@ -80176,23 +109897,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_HT_TRENDLINE(CYTHON_UNUSED P __Pyx_RefNannySetupContext("stream_HT_TRENDLINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3311 + * 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, 3311, __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":3312 + * 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":3313 + * 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":3314 + * 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":3315 + * 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":3316 + * 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, 3316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3317 + * 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, 3317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -80200,6 +109970,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_HT_TRENDLINE(CYTHON_UNUSED P __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3292 + * 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:; @@ -80213,6 +109990,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_HT_TRENDLINE(CYTHON_UNUSED P return __pyx_r; } +/* "talib/_stream.pxi":3319 + * 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_557stream_HT_TRENDMODE(PyObject *__pyx_self, @@ -80332,23 +110116,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_HT_TRENDMODE(CYTHON_UNUSED P __Pyx_RefNannySetupContext("stream_HT_TRENDMODE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3338 + * 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, 3338, __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":3339 + * 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":3340 + * 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":3341 + * 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":3342 + * 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":3343 + * 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, 3343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3344 + * 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, 3344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -80356,6 +110189,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_HT_TRENDMODE(CYTHON_UNUSED P __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3319 + * 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:; @@ -80369,6 +110209,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_HT_TRENDMODE(CYTHON_UNUSED P return __pyx_r; } +/* "talib/_stream.pxi":3346 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_559stream_IMI(PyObject *__pyx_self, @@ -80526,31 +110373,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_IMI(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":3368 + * int outnbelement + * double outreal + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3368, __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":3369 + * double outreal + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + /* "talib/_stream.pxi":3370 + * open = check_array(open) + * open_data = open.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length2(open, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3370, __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":3371 + * open_data = open.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length2(open, close) + * outreal = NaN + */ __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + /* "talib/_stream.pxi":3372 + * close = check_array(close) + * close_data = close.data + * length = check_length2(open, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_IMI( (length) - 1 , (length) - 1 , open_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3372, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":3373 + * close_data = close.data + * length = check_length2(open, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_IMI( (length) - 1 , (length) - 1 , open_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_IMI", retCode) + */ __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + /* "talib/_stream.pxi":3374 + * length = check_length2(open, close) + * outreal = NaN + * retCode = lib.TA_IMI( (length) - 1 , (length) - 1 , open_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_IMI", retCode) + * return outreal + */ __pyx_v_retCode = TA_IMI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + /* "talib/_stream.pxi":3375 + * outreal = NaN + * retCode = lib.TA_IMI( (length) - 1 , (length) - 1 , open_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_IMI", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3376 + * retCode = lib.TA_IMI( (length) - 1 , (length) - 1 , open_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_IMI", 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, 3376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -80558,6 +110468,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_IMI(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3346 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -80572,6 +110489,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_IMI(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":3378 + * return outreal + * + * @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_561stream_KAMA(PyObject *__pyx_self, @@ -80710,23 +110634,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_KAMA(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_KAMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3399 + * 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, 3399, __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":3400 + * 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":3401 + * 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":3402 + * 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":3403 + * 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":3404 + * 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, 3404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3405 + * 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, 3405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -80734,6 +110707,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_KAMA(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3378 + * return outreal + * + * @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:; @@ -80747,6 +110727,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_KAMA(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":3407 + * 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_563stream_LINEARREG(PyObject *__pyx_self, @@ -80885,23 +110872,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_LINEARREG(CYTHON_UNUSED PyOb __Pyx_RefNannySetupContext("stream_LINEARREG", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3428 + * 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, 3428, __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":3429 + * 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":3430 + * 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":3431 + * 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":3432 + * 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":3433 + * 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, 3433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3434 + * 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, 3434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -80909,6 +110945,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_LINEARREG(CYTHON_UNUSED PyOb __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3407 + * 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:; @@ -80922,6 +110965,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_LINEARREG(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_stream.pxi":3436 + * 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_565stream_LINEARREG_ANGLE(PyObject *__pyx_self, @@ -81060,23 +111110,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_LINEARREG_ANGLE(CYTHON_UNUSE __Pyx_RefNannySetupContext("stream_LINEARREG_ANGLE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3457 + * 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, 3457, __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":3458 + * 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":3459 + * 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":3460 + * 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":3461 + * 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":3462 + * 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, 3462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3463 + * 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, 3463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -81084,6 +111183,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_LINEARREG_ANGLE(CYTHON_UNUSE __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3436 + * 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:; @@ -81097,6 +111203,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_LINEARREG_ANGLE(CYTHON_UNUSE return __pyx_r; } +/* "talib/_stream.pxi":3465 + * 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_567stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, @@ -81235,23 +111348,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT(CYTHON_U __Pyx_RefNannySetupContext("stream_LINEARREG_INTERCEPT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3486 + * 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, 3486, __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":3487 + * 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":3488 + * 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":3489 + * 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":3490 + * 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":3491 + * 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, 3491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3492 + * 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, 3492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -81259,6 +111421,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT(CYTHON_U __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3465 + * 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:; @@ -81272,6 +111441,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT(CYTHON_U return __pyx_r; } +/* "talib/_stream.pxi":3494 + * 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_569stream_LINEARREG_SLOPE(PyObject *__pyx_self, @@ -81410,23 +111586,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_LINEARREG_SLOPE(CYTHON_UNUSE __Pyx_RefNannySetupContext("stream_LINEARREG_SLOPE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3515 + * 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, 3515, __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":3516 + * 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":3517 + * 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":3518 + * 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":3519 + * 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":3520 + * 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, 3520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3521 + * 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, 3521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -81434,6 +111659,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_LINEARREG_SLOPE(CYTHON_UNUSE __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3494 + * 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:; @@ -81447,6 +111679,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_LINEARREG_SLOPE(CYTHON_UNUSE return __pyx_r; } +/* "talib/_stream.pxi":3523 + * 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_571stream_LN(PyObject *__pyx_self, @@ -81566,23 +111805,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_LN(CYTHON_UNUSED PyObject *_ __Pyx_RefNannySetupContext("stream_LN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3542 + * 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, 3542, __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":3543 + * 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":3544 + * 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":3545 + * 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":3546 + * 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":3547 + * 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, 3547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3548 + * 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, 3548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -81590,6 +111878,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_LN(CYTHON_UNUSED PyObject *_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3523 + * 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:; @@ -81603,6 +111898,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_LN(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_stream.pxi":3550 + * 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_573stream_LOG10(PyObject *__pyx_self, @@ -81722,23 +112024,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_LOG10(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_LOG10", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3569 + * 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, 3569, __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":3570 + * 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":3571 + * 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":3572 + * 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":3573 + * 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":3574 + * 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, 3574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3575 + * 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, 3575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -81746,6 +112097,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_LOG10(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3550 + * 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:; @@ -81759,6 +112117,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_LOG10(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":3577 + * 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_575stream_MA(PyObject *__pyx_self, @@ -81914,23 +112279,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_MA(CYTHON_UNUSED PyObject *_ __Pyx_RefNannySetupContext("stream_MA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3599 + * 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, 3599, __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":3600 + * 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":3601 + * 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":3602 + * 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":3603 + * 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":3604 + * 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, 3604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3605 + * 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, 3605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -81938,6 +112352,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_MA(CYTHON_UNUSED PyObject *_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3577 + * 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:; @@ -81951,6 +112372,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_MA(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_stream.pxi":3607 + * 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_577stream_MACD(PyObject *__pyx_self, @@ -82128,27 +112556,90 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_MACD(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_MACD", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3634 + * 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, 3634, __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":3635 + * 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":3636 + * 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":3637 + * 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":3638 + * 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":3639 + * 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":3640 + * 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":3641 + * 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, 3641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3642 + * 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, 3642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -82171,6 +112662,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_MACD(CYTHON_UNUSED PyObject __pyx_t_4 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3607 + * 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:; @@ -82187,6 +112685,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_MACD(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":3644 + * 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_579stream_MACDEXT(PyObject *__pyx_self, @@ -82415,27 +112920,90 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_MACDEXT(CYTHON_UNUSED PyObje __Pyx_RefNannySetupContext("stream_MACDEXT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3674 + * 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, 3674, __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":3675 + * 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":3676 + * 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":3677 + * 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":3678 + * 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":3679 + * 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":3680 + * 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":3681 + * 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, 3681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3682 + * 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, 3682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -82458,6 +113026,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_MACDEXT(CYTHON_UNUSED PyObje __pyx_t_4 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3644 + * 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:; @@ -82474,6 +113049,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_MACDEXT(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_stream.pxi":3684 + * 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_581stream_MACDFIX(PyObject *__pyx_self, @@ -82617,27 +113199,90 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_MACDFIX(CYTHON_UNUSED PyObje __Pyx_RefNannySetupContext("stream_MACDFIX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3709 + * 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, 3709, __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":3710 + * 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":3711 + * 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":3712 + * 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":3713 + * 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":3714 + * 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":3715 + * 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":3716 + * 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, 3716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3717 + * 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, 3717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -82660,6 +113305,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_MACDFIX(CYTHON_UNUSED PyObje __pyx_t_4 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3684 + * 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:; @@ -82676,6 +113328,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_MACDFIX(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_stream.pxi":3719 + * 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_583stream_MAMA(PyObject *__pyx_self, @@ -82834,25 +113493,81 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_582stream_MAMA(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_MAMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3743 + * 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, 3743, __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":3744 + * 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":3745 + * 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":3746 + * 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":3747 + * 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":3748 + * 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":3749 + * 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, 3749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3750 + * 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, 3750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -82870,6 +113585,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_582stream_MAMA(CYTHON_UNUSED PyObject __pyx_t_3 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3719 + * 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:; @@ -82885,6 +113607,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_582stream_MAMA(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":3752 + * 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_585stream_MAVP(PyObject *__pyx_self, @@ -83076,31 +113805,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MAVP(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_real); __Pyx_INCREF((PyObject *)__pyx_v_periods); + /* "talib/_stream.pxi":3777 + * 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, 3777, __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":3778 + * 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":3779 + * 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, 3779, __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":3780 + * 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":3781 + * 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, 3781, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":3782 + * 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":3783 + * 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":3784 + * 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, 3784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3785 + * 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, 3785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -83108,6 +113900,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MAVP(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3752 + * 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:; @@ -83122,6 +113921,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MAVP(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":3787 + * 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_587stream_MAX(PyObject *__pyx_self, @@ -83260,23 +114066,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_586stream_MAX(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_MAX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3808 + * 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, 3808, __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":3809 + * 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":3810 + * 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":3811 + * 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":3812 + * 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":3813 + * 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, 3813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3814 + * 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, 3814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -83284,6 +114139,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_586stream_MAX(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3787 + * 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:; @@ -83297,6 +114159,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_586stream_MAX(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":3816 + * 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_589stream_MAXINDEX(PyObject *__pyx_self, @@ -83435,23 +114304,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MAXINDEX(CYTHON_UNUSED PyObj __Pyx_RefNannySetupContext("stream_MAXINDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3837 + * 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, 3837, __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":3838 + * 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":3839 + * 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":3840 + * 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":3841 + * 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":3842 + * 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, 3842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3843 + * 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, 3843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -83459,6 +114377,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MAXINDEX(CYTHON_UNUSED PyObj __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3816 + * 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:; @@ -83472,6 +114397,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MAXINDEX(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_stream.pxi":3845 + * 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_591stream_MEDPRICE(PyObject *__pyx_self, @@ -83610,31 +114542,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MEDPRICE(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_stream.pxi":3865 + * 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, 3865, __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":3866 + * 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":3867 + * 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, 3867, __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":3868 + * 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":3869 + * 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, 3869, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":3870 + * 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":3871 + * 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":3872 + * 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, 3872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3873 + * 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, 3873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -83642,6 +114637,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MEDPRICE(CYTHON_UNUSED PyObj __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3845 + * 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:; @@ -83656,6 +114658,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MEDPRICE(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_stream.pxi":3875 + * 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_593stream_MFI(PyObject *__pyx_self, @@ -83849,45 +114858,136 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MFI(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); + /* "talib/_stream.pxi":3899 + * 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, 3899, __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":3900 + * 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":3901 + * 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, 3901, __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":3902 + * 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":3903 + * 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, 3903, __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":3904 + * 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":3905 + * 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, 3905, __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":3906 + * 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":3907 + * 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, 3907, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":3908 + * 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":3909 + * 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":3910 + * 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, 3910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3911 + * 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, 3911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -83895,6 +114995,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MFI(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3875 + * 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:; @@ -83911,6 +115018,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MFI(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":3913 + * 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_595stream_MIDPOINT(PyObject *__pyx_self, @@ -84049,23 +115163,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MIDPOINT(CYTHON_UNUSED PyObj __Pyx_RefNannySetupContext("stream_MIDPOINT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3934 + * 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, 3934, __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":3935 + * 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":3936 + * 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":3937 + * 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":3938 + * 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":3939 + * 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, 3939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3940 + * 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, 3940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -84073,6 +115236,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MIDPOINT(CYTHON_UNUSED PyObj __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3913 + * 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:; @@ -84086,6 +115256,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MIDPOINT(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_stream.pxi":3942 + * 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_597stream_MIDPRICE(PyObject *__pyx_self, @@ -84243,31 +115420,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_MIDPRICE(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_stream.pxi":3964 + * 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, 3964, __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":3965 + * 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":3966 + * 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, 3966, __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":3967 + * 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":3968 + * 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, 3968, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":3969 + * 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":3970 + * 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":3971 + * 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, 3971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":3972 + * 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, 3972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -84275,6 +115515,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_MIDPRICE(CYTHON_UNUSED PyObj __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3942 + * 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:; @@ -84289,6 +115536,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_MIDPRICE(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_stream.pxi":3974 + * 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_599stream_MIN(PyObject *__pyx_self, @@ -84427,23 +115681,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_598stream_MIN(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_MIN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":3995 + * 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, 3995, __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":3996 + * 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":3997 + * 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":3998 + * 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":3999 + * 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":4000 + * 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, 4000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4001 + * 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, 4001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -84451,6 +115754,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_598stream_MIN(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":3974 + * 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:; @@ -84464,6 +115774,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_598stream_MIN(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":4003 + * 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_601stream_MININDEX(PyObject *__pyx_self, @@ -84602,23 +115919,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MININDEX(CYTHON_UNUSED PyObj __Pyx_RefNannySetupContext("stream_MININDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4024 + * 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, 4024, __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":4025 + * 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":4026 + * 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":4027 + * 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":4028 + * 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":4029 + * 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, 4029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4030 + * 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, 4030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -84626,6 +115992,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MININDEX(CYTHON_UNUSED PyObj __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4003 + * 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:; @@ -84639,6 +116012,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MININDEX(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_stream.pxi":4032 + * 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_603stream_MINMAX(PyObject *__pyx_self, @@ -84780,25 +116160,81 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_MINMAX(CYTHON_UNUSED PyObjec __Pyx_RefNannySetupContext("stream_MINMAX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4055 + * 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, 4055, __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":4056 + * 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":4057 + * 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":4058 + * 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":4059 + * 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":4060 + * 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":4061 + * 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, 4061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4062 + * 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, 4062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -84816,6 +116252,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_MINMAX(CYTHON_UNUSED PyObjec __pyx_t_3 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4032 + * 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:; @@ -84831,6 +116274,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_MINMAX(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_stream.pxi":4064 + * 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_605stream_MINMAXINDEX(PyObject *__pyx_self, @@ -84972,25 +116422,81 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_604stream_MINMAXINDEX(CYTHON_UNUSED Py __Pyx_RefNannySetupContext("stream_MINMAXINDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4087 + * 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, 4087, __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":4088 + * 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":4089 + * 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":4090 + * 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":4091 + * 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":4092 + * 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":4093 + * 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, 4093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4094 + * 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, 4094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -85008,6 +116514,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_604stream_MINMAXINDEX(CYTHON_UNUSED Py __pyx_t_3 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4064 + * 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:; @@ -85023,6 +116536,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_604stream_MINMAXINDEX(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_stream.pxi":4096 + * 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_607stream_MINUS_DI(PyObject *__pyx_self, @@ -85198,38 +116718,115 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_MINUS_DI(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":4119 + * 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, 4119, __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":4120 + * 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":4121 + * 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, 4121, __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":4122 + * 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":4123 + * 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, 4123, __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":4124 + * 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":4125 + * 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, 4125, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":4126 + * 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":4127 + * 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":4128 + * 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, 4128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4129 + * 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, 4129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -85237,6 +116834,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_MINUS_DI(CYTHON_UNUSED PyObj __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4096 + * 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:; @@ -85252,6 +116856,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_MINUS_DI(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_stream.pxi":4131 + * 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_609stream_MINUS_DM(PyObject *__pyx_self, @@ -85409,31 +117020,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_608stream_MINUS_DM(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_stream.pxi":4153 + * 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, 4153, __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":4154 + * 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":4155 + * 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, 4155, __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":4156 + * 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":4157 + * 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, 4157, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":4158 + * 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":4159 + * 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":4160 + * 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, 4160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4161 + * 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, 4161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -85441,6 +117115,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_608stream_MINUS_DM(CYTHON_UNUSED PyObj __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4131 + * 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:; @@ -85455,6 +117136,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_608stream_MINUS_DM(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_stream.pxi":4163 + * 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_611stream_MOM(PyObject *__pyx_self, @@ -85593,23 +117281,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_MOM(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_MOM", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4184 + * 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, 4184, __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":4185 + * 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":4186 + * 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":4187 + * 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":4188 + * 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":4189 + * 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, 4189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4190 + * 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, 4190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -85617,6 +117354,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_MOM(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4163 + * 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:; @@ -85630,6 +117374,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_MOM(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":4192 + * 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_613stream_MULT(PyObject *__pyx_self, @@ -85768,31 +117519,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_MULT(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_stream.pxi":4213 + * 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, 4213, __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":4214 + * 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":4215 + * 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, 4215, __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":4216 + * 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":4217 + * 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, 4217, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":4218 + * 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":4219 + * 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":4220 + * 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, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4221 + * 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, 4221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -85800,6 +117614,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_MULT(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4192 + * 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:; @@ -85814,6 +117635,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_MULT(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":4223 + * 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_615stream_NATR(PyObject *__pyx_self, @@ -85989,38 +117817,115 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_NATR(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":4246 + * 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, 4246, __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":4247 + * 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":4248 + * 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, 4248, __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":4249 + * 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":4250 + * 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, 4250, __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":4251 + * 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":4252 + * 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, 4252, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":4253 + * 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":4254 + * 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":4255 + * 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, 4255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4256 + * 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, 4256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -86028,6 +117933,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_NATR(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4223 + * 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:; @@ -86043,6 +117955,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_NATR(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":4258 + * 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_617stream_OBV(PyObject *__pyx_self, @@ -86181,31 +118100,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_OBV(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_real); __Pyx_INCREF((PyObject *)__pyx_v_volume); + /* "talib/_stream.pxi":4279 + * 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, 4279, __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":4280 + * 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":4281 + * 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, 4281, __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":4282 + * 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":4283 + * 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, 4283, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":4284 + * 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":4285 + * 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":4286 + * 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, 4286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4287 + * 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, 4287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -86213,6 +118195,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_OBV(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4258 + * 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:; @@ -86227,6 +118216,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_OBV(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":4289 + * 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_619stream_PLUS_DI(PyObject *__pyx_self, @@ -86402,38 +118398,115 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_PLUS_DI(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":4312 + * 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, 4312, __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":4313 + * 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":4314 + * 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, 4314, __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":4315 + * 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":4316 + * 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, 4316, __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":4317 + * 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":4318 + * 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, 4318, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":4319 + * 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":4320 + * 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":4321 + * 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, 4321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4322 + * 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, 4322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -86441,6 +118514,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_PLUS_DI(CYTHON_UNUSED PyObje __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4289 + * 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:; @@ -86456,6 +118536,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_PLUS_DI(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_stream.pxi":4324 + * 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_621stream_PLUS_DM(PyObject *__pyx_self, @@ -86613,31 +118700,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_PLUS_DM(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_stream.pxi":4346 + * 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, 4346, __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":4347 + * 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":4348 + * 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, 4348, __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":4349 + * 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":4350 + * 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, 4350, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":4351 + * 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":4352 + * 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":4353 + * 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, 4353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4354 + * 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, 4354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -86645,6 +118795,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_PLUS_DM(CYTHON_UNUSED PyObje __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4324 + * 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:; @@ -86659,6 +118816,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_PLUS_DM(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_stream.pxi":4356 + * 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_623stream_PPO(PyObject *__pyx_self, @@ -86831,23 +118995,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_PPO(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_PPO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4379 + * 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, 4379, __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":4380 + * 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":4381 + * 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":4382 + * 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":4383 + * 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":4384 + * 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, 4384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4385 + * 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, 4385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -86855,6 +119068,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_PPO(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4356 + * 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:; @@ -86868,6 +119088,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_PPO(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":4387 + * 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_625stream_ROC(PyObject *__pyx_self, @@ -87006,23 +119233,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_624stream_ROC(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_ROC", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4408 + * 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, 4408, __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":4409 + * 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":4410 + * 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":4411 + * 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":4412 + * 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":4413 + * 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, 4413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4414 + * 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, 4414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -87030,6 +119306,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_624stream_ROC(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4387 + * 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:; @@ -87043,6 +119326,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_624stream_ROC(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":4416 + * 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_627stream_ROCP(PyObject *__pyx_self, @@ -87181,23 +119471,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_ROCP(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_ROCP", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4437 + * 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, 4437, __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":4438 + * 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":4439 + * 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":4440 + * 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":4441 + * 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":4442 + * 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, 4442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4443 + * 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, 4443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -87205,6 +119544,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_ROCP(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4416 + * 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:; @@ -87218,6 +119564,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_ROCP(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":4445 + * 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_629stream_ROCR(PyObject *__pyx_self, @@ -87356,23 +119709,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_ROCR(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_ROCR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4466 + * 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, 4466, __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":4467 + * 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":4468 + * 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":4469 + * 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":4470 + * 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":4471 + * 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, 4471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4472 + * 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, 4472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -87380,6 +119782,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_ROCR(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4445 + * 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:; @@ -87393,6 +119802,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_ROCR(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":4474 + * 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_631stream_ROCR100(PyObject *__pyx_self, @@ -87531,23 +119947,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_ROCR100(CYTHON_UNUSED PyObje __Pyx_RefNannySetupContext("stream_ROCR100", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4495 + * 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, 4495, __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":4496 + * 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":4497 + * 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":4498 + * 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":4499 + * 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":4500 + * 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, 4500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4501 + * 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, 4501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -87555,6 +120020,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_ROCR100(CYTHON_UNUSED PyObje __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4474 + * 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:; @@ -87568,6 +120040,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_ROCR100(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_stream.pxi":4503 + * 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_633stream_RSI(PyObject *__pyx_self, @@ -87706,23 +120185,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_RSI(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_RSI", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4524 + * 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, 4524, __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":4525 + * 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":4526 + * 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":4527 + * 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":4528 + * 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":4529 + * 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, 4529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4530 + * 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, 4530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -87730,6 +120258,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_RSI(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4503 + * 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:; @@ -87743,6 +120278,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_RSI(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":4532 + * 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_635stream_SAR(PyObject *__pyx_self, @@ -87917,31 +120459,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_SAR(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_stream.pxi":4555 + * 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, 4555, __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":4556 + * 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":4557 + * 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, 4557, __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":4558 + * 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":4559 + * 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, 4559, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":4560 + * 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":4561 + * 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":4562 + * 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, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4563 + * 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, 4563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -87949,6 +120554,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_SAR(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4532 + * 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:; @@ -87963,6 +120575,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_SAR(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":4565 + * 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_637stream_SAREXT(PyObject *__pyx_self, @@ -88239,31 +120858,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_SAREXT(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_stream.pxi":4594 + * 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, 4594, __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":4595 + * 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":4596 + * 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, 4596, __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":4597 + * 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":4598 + * 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, 4598, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":4599 + * 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":4600 + * 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":4601 + * 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, 4601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4602 + * 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, 4602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -88271,6 +120953,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_SAREXT(CYTHON_UNUSED PyObjec __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4565 + * 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:; @@ -88285,6 +120974,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_SAREXT(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_stream.pxi":4604 + * 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_639stream_SIN(PyObject *__pyx_self, @@ -88404,23 +121100,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_SIN(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_SIN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4623 + * 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, 4623, __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":4624 + * 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":4625 + * 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":4626 + * 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":4627 + * 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":4628 + * 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, 4628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4629 + * 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, 4629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -88428,6 +121173,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_SIN(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4604 + * 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:; @@ -88441,6 +121193,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_SIN(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":4631 + * 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_641stream_SINH(PyObject *__pyx_self, @@ -88560,23 +121319,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_SINH(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_SINH", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4650 + * 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, 4650, __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":4651 + * 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":4652 + * 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":4653 + * 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":4654 + * 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":4655 + * 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, 4655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4656 + * 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, 4656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -88584,6 +121392,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_SINH(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4631 + * 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:; @@ -88597,6 +121412,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_SINH(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":4658 + * 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_643stream_SMA(PyObject *__pyx_self, @@ -88735,23 +121557,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_642stream_SMA(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_SMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4679 + * 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, 4679, __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":4680 + * 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":4681 + * 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":4682 + * 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":4683 + * 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":4684 + * 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, 4684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4685 + * 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, 4685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -88759,6 +121630,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_642stream_SMA(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4658 + * 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:; @@ -88772,6 +121650,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_642stream_SMA(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":4687 + * 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_645stream_SQRT(PyObject *__pyx_self, @@ -88891,23 +121776,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SQRT(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_SQRT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4706 + * 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, 4706, __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":4707 + * 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":4708 + * 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":4709 + * 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":4710 + * 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":4711 + * 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, 4711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4712 + * 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, 4712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -88915,6 +121849,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SQRT(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4687 + * 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:; @@ -88928,6 +121869,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SQRT(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":4714 + * 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_647stream_STDDEV(PyObject *__pyx_self, @@ -89083,23 +122031,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_STDDEV(CYTHON_UNUSED PyObjec __Pyx_RefNannySetupContext("stream_STDDEV", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4736 + * 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, 4736, __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":4737 + * 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":4738 + * 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":4739 + * 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":4740 + * 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":4741 + * 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, 4741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4742 + * 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, 4742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -89107,6 +122104,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_STDDEV(CYTHON_UNUSED PyObjec __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4714 + * 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:; @@ -89120,6 +122124,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_STDDEV(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_stream.pxi":4744 + * 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_649stream_STOCH(PyObject *__pyx_self, @@ -89366,40 +122377,124 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_648stream_STOCH(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":4773 + * 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, 4773, __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":4774 + * 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":4775 + * 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, 4775, __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":4776 + * 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":4777 + * 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, 4777, __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":4778 + * 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":4779 + * 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, 4779, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":4780 + * 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":4781 + * 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":4782 + * 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":4783 + * 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, 4783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4784 + * 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, 4784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -89417,6 +122512,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_648stream_STOCH(CYTHON_UNUSED PyObject __pyx_t_4 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4744 + * 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:; @@ -89434,6 +122536,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_648stream_STOCH(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":4786 + * 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_651stream_STOCHF(PyObject *__pyx_self, @@ -89646,40 +122755,124 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_STOCHF(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":4813 + * 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, 4813, __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":4814 + * 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":4815 + * 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, 4815, __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":4816 + * 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":4817 + * 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, 4817, __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":4818 + * 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":4819 + * 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, 4819, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":4820 + * 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":4821 + * 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":4822 + * 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":4823 + * 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, 4823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4824 + * 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, 4824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -89697,6 +122890,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_STOCHF(CYTHON_UNUSED PyObjec __pyx_t_4 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4786 + * 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:; @@ -89714,6 +122914,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_STOCHF(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_stream.pxi":4826 + * 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_653stream_STOCHRSI(PyObject *__pyx_self, @@ -89906,25 +123113,81 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_STOCHRSI(CYTHON_UNUSED PyObj __Pyx_RefNannySetupContext("stream_STOCHRSI", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4852 + * 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, 4852, __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":4853 + * 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":4854 + * 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":4855 + * 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":4856 + * 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":4857 + * 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":4858 + * 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, 4858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4859 + * 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, 4859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -89942,6 +123205,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_STOCHRSI(CYTHON_UNUSED PyObj __pyx_t_3 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4826 + * 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:; @@ -89957,6 +123227,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_STOCHRSI(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_stream.pxi":4861 + * 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_655stream_SUB(PyObject *__pyx_self, @@ -90095,31 +123372,94 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_SUB(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_stream.pxi":4882 + * 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, 4882, __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":4883 + * 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":4884 + * 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, 4884, __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":4885 + * 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":4886 + * 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, 4886, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":4887 + * 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":4888 + * 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":4889 + * 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, 4889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4890 + * 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, 4890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -90127,6 +123467,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_SUB(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4861 + * 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:; @@ -90141,6 +123488,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_SUB(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":4892 + * 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_657stream_SUM(PyObject *__pyx_self, @@ -90279,23 +123633,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_SUM(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_SUM", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4913 + * 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, 4913, __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":4914 + * 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":4915 + * 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":4916 + * 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":4917 + * 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":4918 + * 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, 4918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4919 + * 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, 4919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -90303,6 +123706,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_SUM(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4892 + * 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:; @@ -90316,6 +123726,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_SUM(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":4921 + * 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_659stream_T3(PyObject *__pyx_self, @@ -90471,23 +123888,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_T3(CYTHON_UNUSED PyObject *_ __Pyx_RefNannySetupContext("stream_T3", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4943 + * 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, 4943, __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":4944 + * 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":4945 + * 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":4946 + * 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":4947 + * 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":4948 + * 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, 4948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4949 + * 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, 4949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -90495,6 +123961,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_T3(CYTHON_UNUSED PyObject *_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4921 + * 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:; @@ -90508,6 +123981,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_T3(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_stream.pxi":4951 + * 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_661stream_TAN(PyObject *__pyx_self, @@ -90627,23 +124107,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TAN(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_TAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4970 + * 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, 4970, __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":4971 + * 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":4972 + * 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":4973 + * 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":4974 + * 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":4975 + * 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, 4975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":4976 + * 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, 4976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -90651,6 +124180,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TAN(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4951 + * 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:; @@ -90664,6 +124200,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TAN(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":4978 + * 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_663stream_TANH(PyObject *__pyx_self, @@ -90783,23 +124326,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TANH(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_TANH", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":4997 + * 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, 4997, __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":4998 + * 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":4999 + * 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":5000 + * 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":5001 + * 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":5002 + * 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, 5002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":5003 + * 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, 5003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -90807,6 +124399,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TANH(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":4978 + * 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:; @@ -90820,6 +124419,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TANH(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":5005 + * 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_665stream_TEMA(PyObject *__pyx_self, @@ -90958,23 +124564,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_TEMA(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_TEMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":5026 + * 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, 5026, __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":5027 + * 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":5028 + * 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":5029 + * 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":5030 + * 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":5031 + * 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, 5031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":5032 + * 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, 5032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -90982,6 +124637,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_TEMA(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":5005 + * 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:; @@ -90995,6 +124657,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_TEMA(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":5034 + * 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_667stream_TRANGE(PyObject *__pyx_self, @@ -91151,38 +124820,115 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_TRANGE(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":5055 + * 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, 5055, __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":5056 + * 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":5057 + * 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, 5057, __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":5058 + * 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":5059 + * 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, 5059, __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":5060 + * 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":5061 + * 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, 5061, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":5062 + * 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":5063 + * 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":5064 + * 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, 5064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":5065 + * 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, 5065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -91190,6 +124936,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_TRANGE(CYTHON_UNUSED PyObjec __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":5034 + * 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:; @@ -91205,6 +124958,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_TRANGE(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_stream.pxi":5067 + * 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_669stream_TRIMA(PyObject *__pyx_self, @@ -91343,23 +125103,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_TRIMA(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_TRIMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":5088 + * 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, 5088, __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":5089 + * 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":5090 + * 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":5091 + * 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":5092 + * 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":5093 + * 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, 5093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":5094 + * 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, 5094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -91367,6 +125176,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_TRIMA(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":5067 + * 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:; @@ -91380,6 +125196,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_TRIMA(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":5096 + * 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_671stream_TRIX(PyObject *__pyx_self, @@ -91518,23 +125341,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_TRIX(CYTHON_UNUSED PyObject __Pyx_RefNannySetupContext("stream_TRIX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":5117 + * 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, 5117, __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":5118 + * 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":5119 + * 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":5120 + * 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":5121 + * 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":5122 + * 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, 5122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":5123 + * 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, 5123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -91542,6 +125414,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_TRIX(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":5096 + * 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:; @@ -91555,6 +125434,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_TRIX(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":5125 + * 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_673stream_TSF(PyObject *__pyx_self, @@ -91693,23 +125579,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_TSF(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_TSF", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":5146 + * 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, 5146, __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":5147 + * 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":5148 + * 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":5149 + * 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":5150 + * 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":5151 + * 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, 5151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":5152 + * 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, 5152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -91717,6 +125652,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_TSF(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":5125 + * 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:; @@ -91730,6 +125672,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_TSF(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":5154 + * 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_675stream_TYPPRICE(PyObject *__pyx_self, @@ -91886,38 +125835,115 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_674stream_TYPPRICE(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":5175 + * 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, 5175, __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":5176 + * 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":5177 + * 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, 5177, __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":5178 + * 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":5179 + * 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, 5179, __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":5180 + * 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":5181 + * 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, 5181, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":5182 + * 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":5183 + * 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":5184 + * 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, 5184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":5185 + * 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, 5185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -91925,6 +125951,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_674stream_TYPPRICE(CYTHON_UNUSED PyObj __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":5154 + * 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:; @@ -91940,6 +125973,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_674stream_TYPPRICE(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_stream.pxi":5187 + * 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_677stream_ULTOSC(PyObject *__pyx_self, @@ -92149,38 +126189,115 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_676stream_ULTOSC(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":5212 + * 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, 5212, __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":5213 + * 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":5214 + * 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, 5214, __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":5215 + * 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":5216 + * 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, 5216, __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":5217 + * 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":5218 + * 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, 5218, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":5219 + * 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":5220 + * 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":5221 + * 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, 5221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":5222 + * 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, 5222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -92188,6 +126305,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_676stream_ULTOSC(CYTHON_UNUSED PyObjec __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":5187 + * 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:; @@ -92203,6 +126327,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_676stream_ULTOSC(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_stream.pxi":5224 + * 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_679stream_VAR(PyObject *__pyx_self, @@ -92358,23 +126489,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_678stream_VAR(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_VAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":5246 + * 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, 5246, __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":5247 + * 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":5248 + * 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":5249 + * 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":5250 + * 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":5251 + * 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, 5251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":5252 + * 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, 5252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -92382,6 +126562,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_678stream_VAR(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":5224 + * 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:; @@ -92395,6 +126582,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_678stream_VAR(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_stream.pxi":5254 + * 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_681stream_WCLPRICE(PyObject *__pyx_self, @@ -92551,38 +126745,115 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_680stream_WCLPRICE(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":5275 + * 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, 5275, __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":5276 + * 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":5277 + * 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, 5277, __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":5278 + * 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":5279 + * 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, 5279, __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":5280 + * 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":5281 + * 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, 5281, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":5282 + * 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":5283 + * 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":5284 + * 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, 5284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":5285 + * 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, 5285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -92590,6 +126861,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_680stream_WCLPRICE(CYTHON_UNUSED PyObj __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":5254 + * 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:; @@ -92605,6 +126883,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_680stream_WCLPRICE(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_stream.pxi":5287 + * 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_683stream_WILLR(PyObject *__pyx_self, @@ -92780,38 +127065,115 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_682stream_WILLR(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_stream.pxi":5310 + * 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, 5310, __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":5311 + * 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":5312 + * 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, 5312, __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":5313 + * 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":5314 + * 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, 5314, __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":5315 + * 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":5316 + * 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, 5316, __pyx_L1_error) __pyx_v_length = __pyx_t_2; + /* "talib/_stream.pxi":5317 + * 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":5318 + * 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":5319 + * 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, 5319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":5320 + * 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, 5320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -92819,6 +127181,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_682stream_WILLR(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":5287 + * 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:; @@ -92834,6 +127203,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_682stream_WILLR(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_stream.pxi":5322 + * 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_685stream_WMA(PyObject *__pyx_self, @@ -92972,23 +127348,71 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_684stream_WMA(CYTHON_UNUSED PyObject * __Pyx_RefNannySetupContext("stream_WMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_stream.pxi":5343 + * 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, 5343, __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":5344 + * 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":5345 + * 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":5346 + * 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":5347 + * 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":5348 + * 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, 5348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_stream.pxi":5349 + * 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, 5349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -92996,6 +127420,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_684stream_WMA(CYTHON_UNUSED PyObject * __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_stream.pxi":5322 + * 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:; @@ -93996,42 +128427,112 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1043 + * __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, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); + /* "../../.virtualenvs/qtf/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1049 + * _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, 1049, __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); @@ -94039,40 +128540,96 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __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); @@ -94080,10 +128637,24 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __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); @@ -94091,476 +128662,1659 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __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 ACCBANDS( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ __pyx_tuple__44 = PyTuple_Pack(14, __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_outrealupperband, __pyx_n_s_outrealmiddleband, __pyx_n_s_outreallowerband); 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(4, 0, 0, 14, 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_ACCBANDS, 142, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(3, 142, __pyx_L1_error) + /* "talib/_func.pxi":181 + * return outrealupperband , outrealmiddleband , outreallowerband + * + * @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__46 = 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__46)) __PYX_ERR(3, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__46); __Pyx_GIVEREF(__pyx_tuple__46); __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_ACOS, 181, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(3, 181, __pyx_L1_error) + /* "talib/_func.pxi":210 + * 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__48 = 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__48)) __PYX_ERR(3, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__48); __Pyx_GIVEREF(__pyx_tuple__48); __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 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_AD, 210, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(3, 210, __pyx_L1_error) + /* "talib/_func.pxi":242 + * 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__50 = 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__50)) __PYX_ERR(3, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__50); __Pyx_GIVEREF(__pyx_tuple__50); __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_ADD, 242, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(3, 242, __pyx_L1_error) + /* "talib/_func.pxi":273 + * 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__52 = 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__52)) __PYX_ERR(3, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__52); __Pyx_GIVEREF(__pyx_tuple__52); __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 14, 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_ADOSC, 273, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(3, 273, __pyx_L1_error) + /* "talib/_func.pxi":308 + * 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__54 = 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__54)) __PYX_ERR(3, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__54); __Pyx_GIVEREF(__pyx_tuple__54); __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADX, 308, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(3, 308, __pyx_L1_error) + /* "talib/_func.pxi":341 + * 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__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__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADXR, 341, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(3, 341, __pyx_L1_error) + /* "talib/_func.pxi":374 + * 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__57 = 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__57)) __PYX_ERR(3, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__57); __Pyx_GIVEREF(__pyx_tuple__57); __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(4, 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_APO, 374, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(3, 374, __pyx_L1_error) + /* "talib/_func.pxi":407 + * 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__59 = 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__59)) __PYX_ERR(3, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__59); __Pyx_GIVEREF(__pyx_tuple__59); __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 12, 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_AROON, 407, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(3, 407, __pyx_L1_error) + /* "talib/_func.pxi":442 + * 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__61 = 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__61)) __PYX_ERR(3, 442, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__61); __Pyx_GIVEREF(__pyx_tuple__61); __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AROONOSC, 442, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(3, 442, __pyx_L1_error) + /* "talib/_func.pxi":474 + * 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__63 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_ASIN, 474, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(3, 474, __pyx_L1_error) + /* "talib/_func.pxi":503 + * 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__64 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_ATAN, 503, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(3, 503, __pyx_L1_error) + /* "talib/_func.pxi":532 + * 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__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__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ATR, 532, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(3, 532, __pyx_L1_error) + /* "talib/_func.pxi":565 + * 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__66 = 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__66)) __PYX_ERR(3, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__66); __Pyx_GIVEREF(__pyx_tuple__66); __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 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_AVGPRICE, 565, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(3, 565, __pyx_L1_error) + /* "talib/_func.pxi":597 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ): + */ __pyx_tuple__68 = 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__68)) __PYX_ERR(3, 597, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__68); __Pyx_GIVEREF(__pyx_tuple__68); __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_AVGDEV, 597, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(3, 597, __pyx_L1_error) + /* "talib/_func.pxi":628 + * 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__70 = 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__70)) __PYX_ERR(3, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__70); __Pyx_GIVEREF(__pyx_tuple__70); __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BBANDS, 628, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(3, 628, __pyx_L1_error) + /* "talib/_func.pxi":668 + * 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__72 = 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__72)) __PYX_ERR(3, 668, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__72); __Pyx_GIVEREF(__pyx_tuple__72); __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 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_BETA, 668, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(3, 668, __pyx_L1_error) + /* "talib/_func.pxi":701 + * 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__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__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BOP, 701, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(3, 701, __pyx_L1_error) + /* "talib/_func.pxi":733 + * 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__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__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CCI, 733, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(3, 733, __pyx_L1_error) + /* "talib/_func.pxi":766 + * 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__76 = 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__76)) __PYX_ERR(3, 766, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__76); __Pyx_GIVEREF(__pyx_tuple__76); __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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL2CROWS, 766, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(3, 766, __pyx_L1_error) + /* "talib/_func.pxi":798 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3BLACKCROWS, 798, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(3, 798, __pyx_L1_error) + /* "talib/_func.pxi":830 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3INSIDE, 830, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__79)) __PYX_ERR(3, 830, __pyx_L1_error) + /* "talib/_func.pxi":862 + * 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__80 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3LINESTRIKE, 862, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(3, 862, __pyx_L1_error) + /* "talib/_func.pxi":894 + * 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__81 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3OUTSIDE, 894, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(3, 894, __pyx_L1_error) + /* "talib/_func.pxi":926 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3STARSINSOUTH, 926, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(3, 926, __pyx_L1_error) + /* "talib/_func.pxi":958 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3WHITESOLDIERS, 958, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__83)) __PYX_ERR(3, 958, __pyx_L1_error) + /* "talib/_func.pxi":990 + * 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__84 = 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__84)) __PYX_ERR(3, 990, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__84); __Pyx_GIVEREF(__pyx_tuple__84); __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLABANDONEDBABY, 990, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(3, 990, __pyx_L1_error) + /* "talib/_func.pxi":1024 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLADVANCEBLOCK, 1024, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(3, 1024, __pyx_L1_error) + /* "talib/_func.pxi":1056 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLBELTHOLD, 1056, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(3, 1056, __pyx_L1_error) + /* "talib/_func.pxi":1088 + * 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__88 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLBREAKAWAY, 1088, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(3, 1088, __pyx_L1_error) + /* "talib/_func.pxi":1120 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCLOSINGMARUBOZU, 1120, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(3, 1120, __pyx_L1_error) + /* "talib/_func.pxi":1152 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCONCEALBABYSWALL, 1152, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(3, 1152, __pyx_L1_error) + /* "talib/_func.pxi":1184 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCOUNTERATTACK, 1184, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(3, 1184, __pyx_L1_error) + /* "talib/_func.pxi":1216 + * 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__92 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDARKCLOUDCOVER, 1216, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(3, 1216, __pyx_L1_error) + /* "talib/_func.pxi":1250 + * 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__93 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDOJI, 1250, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(3, 1250, __pyx_L1_error) + /* "talib/_func.pxi":1282 + * 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__94 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDOJISTAR, 1282, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(3, 1282, __pyx_L1_error) + /* "talib/_func.pxi":1314 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDRAGONFLYDOJI, 1314, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) __PYX_ERR(3, 1314, __pyx_L1_error) + /* "talib/_func.pxi":1346 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLENGULFING, 1346, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(3, 1346, __pyx_L1_error) + /* "talib/_func.pxi":1378 + * 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__97 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLEVENINGDOJISTAR, 1378, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(3, 1378, __pyx_L1_error) + /* "talib/_func.pxi":1412 + * 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__98 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLEVENINGSTAR, 1412, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(3, 1412, __pyx_L1_error) + /* "talib/_func.pxi":1446 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLGAPSIDESIDEWHITE, 1446, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(3, 1446, __pyx_L1_error) + /* "talib/_func.pxi":1478 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLGRAVESTONEDOJI, 1478, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(3, 1478, __pyx_L1_error) + /* "talib/_func.pxi":1510 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHAMMER, 1510, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__101)) __PYX_ERR(3, 1510, __pyx_L1_error) + /* "talib/_func.pxi":1542 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHANGINGMAN, 1542, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(3, 1542, __pyx_L1_error) + /* "talib/_func.pxi":1574 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHARAMI, 1574, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(3, 1574, __pyx_L1_error) + /* "talib/_func.pxi":1606 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHARAMICROSS, 1606, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(3, 1606, __pyx_L1_error) + /* "talib/_func.pxi":1638 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIGHWAVE, 1638, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(3, 1638, __pyx_L1_error) + /* "talib/_func.pxi":1670 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIKKAKE, 1670, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(3, 1670, __pyx_L1_error) + /* "talib/_func.pxi":1702 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIKKAKEMOD, 1702, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__107)) __PYX_ERR(3, 1702, __pyx_L1_error) + /* "talib/_func.pxi":1734 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHOMINGPIGEON, 1734, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(3, 1734, __pyx_L1_error) + /* "talib/_func.pxi":1766 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLIDENTICAL3CROWS, 1766, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__109)) __PYX_ERR(3, 1766, __pyx_L1_error) + /* "talib/_func.pxi":1798 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLINNECK, 1798, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(3, 1798, __pyx_L1_error) + /* "talib/_func.pxi":1830 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLINVERTEDHAMMER, 1830, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__111)) __PYX_ERR(3, 1830, __pyx_L1_error) + /* "talib/_func.pxi":1862 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLKICKING, 1862, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(3, 1862, __pyx_L1_error) + /* "talib/_func.pxi":1894 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLKICKINGBYLENGTH, 1894, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__113)) __PYX_ERR(3, 1894, __pyx_L1_error) + /* "talib/_func.pxi":1926 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLADDERBOTTOM, 1926, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(3, 1926, __pyx_L1_error) + /* "talib/_func.pxi":1958 + * 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__115 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLONGLEGGEDDOJI, 1958, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) __PYX_ERR(3, 1958, __pyx_L1_error) + /* "talib/_func.pxi":1990 + * 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__116 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLONGLINE, 1990, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(3, 1990, __pyx_L1_error) + /* "talib/_func.pxi":2022 + * 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__117 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMARUBOZU, 2022, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__117)) __PYX_ERR(3, 2022, __pyx_L1_error) + /* "talib/_func.pxi":2054 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMATCHINGLOW, 2054, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(3, 2054, __pyx_L1_error) + /* "talib/_func.pxi":2086 + * 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__119 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMATHOLD, 2086, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__119)) __PYX_ERR(3, 2086, __pyx_L1_error) + /* "talib/_func.pxi":2120 + * 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__120 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMORNINGDOJISTAR, 2120, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(3, 2120, __pyx_L1_error) + /* "talib/_func.pxi":2154 + * 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__121 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMORNINGSTAR, 2154, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__121)) __PYX_ERR(3, 2154, __pyx_L1_error) + /* "talib/_func.pxi":2188 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLONNECK, 2188, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(3, 2188, __pyx_L1_error) + /* "talib/_func.pxi":2220 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLPIERCING, 2220, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__123)) __PYX_ERR(3, 2220, __pyx_L1_error) + /* "talib/_func.pxi":2252 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLRICKSHAWMAN, 2252, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(3, 2252, __pyx_L1_error) + /* "talib/_func.pxi":2284 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLRISEFALL3METHODS, 2284, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__125)) __PYX_ERR(3, 2284, __pyx_L1_error) + /* "talib/_func.pxi":2316 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSEPARATINGLINES, 2316, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(3, 2316, __pyx_L1_error) + /* "talib/_func.pxi":2348 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSHOOTINGSTAR, 2348, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__127)) __PYX_ERR(3, 2348, __pyx_L1_error) + /* "talib/_func.pxi":2380 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSHORTLINE, 2380, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(3, 2380, __pyx_L1_error) + /* "talib/_func.pxi":2412 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSPINNINGTOP, 2412, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__129)) __PYX_ERR(3, 2412, __pyx_L1_error) + /* "talib/_func.pxi":2444 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSTALLEDPATTERN, 2444, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(3, 2444, __pyx_L1_error) + /* "talib/_func.pxi":2476 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSTICKSANDWICH, 2476, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(3, 2476, __pyx_L1_error) + /* "talib/_func.pxi":2508 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTAKURI, 2508, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(3, 2508, __pyx_L1_error) + /* "talib/_func.pxi":2540 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTASUKIGAP, 2540, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__133)) __PYX_ERR(3, 2540, __pyx_L1_error) + /* "talib/_func.pxi":2572 + * 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__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__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTHRUSTING, 2572, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(3, 2572, __pyx_L1_error) + /* "talib/_func.pxi":2604 + * 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__135 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTRISTAR, 2604, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__135)) __PYX_ERR(3, 2604, __pyx_L1_error) + /* "talib/_func.pxi":2636 + * 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__136 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLUNIQUE3RIVER, 2636, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__136)) __PYX_ERR(3, 2636, __pyx_L1_error) + /* "talib/_func.pxi":2668 + * 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__137 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLUPSIDEGAP2CROWS, 2668, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__137)) __PYX_ERR(3, 2668, __pyx_L1_error) + /* "talib/_func.pxi":2700 + * 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__138 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLXSIDEGAP3METHODS, 2700, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) __PYX_ERR(3, 2700, __pyx_L1_error) + /* "talib/_func.pxi":2732 + * 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__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__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CEIL, 2732, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(3, 2732, __pyx_L1_error) + /* "talib/_func.pxi":2761 + * 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_codeobj__140 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_CMO, 2761, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(3, 2761, __pyx_L1_error) + /* "talib/_func.pxi":2792 + * 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__141 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 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_CORREL, 2792, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(3, 2792, __pyx_L1_error) + /* "talib/_func.pxi":2825 + * 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__142 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_COS, 2825, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(3, 2825, __pyx_L1_error) + /* "talib/_func.pxi":2854 + * 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__143 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_COSH, 2854, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__143)) __PYX_ERR(3, 2854, __pyx_L1_error) + /* "talib/_func.pxi":2883 + * 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__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__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DEMA, 2883, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(3, 2883, __pyx_L1_error) + /* "talib/_func.pxi":2914 + * 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__145 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_DIV, 2914, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__145)) __PYX_ERR(3, 2914, __pyx_L1_error) + /* "talib/_func.pxi":2945 + * 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__146 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DX, 2945, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(3, 2945, __pyx_L1_error) + /* "talib/_func.pxi":2978 + * 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__147 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_EMA, 2978, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__147)) __PYX_ERR(3, 2978, __pyx_L1_error) + /* "talib/_func.pxi":3009 + * 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__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__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_EXP, 3009, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(3, 3009, __pyx_L1_error) + /* "talib/_func.pxi":3038 + * 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__149 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_FLOOR, 3038, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__149)) __PYX_ERR(3, 3038, __pyx_L1_error) + /* "talib/_func.pxi":3067 + * 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__150 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_HT_DCPERIOD, 3067, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(3, 3067, __pyx_L1_error) + /* "talib/_func.pxi":3096 + * 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__151 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_HT_DCPHASE, 3096, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__151)) __PYX_ERR(3, 3096, __pyx_L1_error) + /* "talib/_func.pxi":3125 + * 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__152 = 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__152)) __PYX_ERR(3, 3125, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__152); __Pyx_GIVEREF(__pyx_tuple__152); __pyx_codeobj__153 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__152, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_PHASOR, 3125, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__153)) __PYX_ERR(3, 3125, __pyx_L1_error) + /* "talib/_func.pxi":3157 + * 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__154 = 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__154)) __PYX_ERR(3, 3157, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__154); __Pyx_GIVEREF(__pyx_tuple__154); __pyx_codeobj__155 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 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_SINE, 3157, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__155)) __PYX_ERR(3, 3157, __pyx_L1_error) + /* "talib/_func.pxi":3189 + * 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__156 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_HT_TRENDLINE, 3189, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(3, 3189, __pyx_L1_error) + /* "talib/_func.pxi":3218 + * 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__157 = 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__157)) __PYX_ERR(3, 3218, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__157); __Pyx_GIVEREF(__pyx_tuple__157); __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__157, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_TRENDMODE, 3218, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) __PYX_ERR(3, 3218, __pyx_L1_error) + /* "talib/_func.pxi":3247 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ __pyx_tuple__159 = PyTuple_Pack(11, __pyx_n_s_open, __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__159)) __PYX_ERR(3, 3247, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__159); __Pyx_GIVEREF(__pyx_tuple__159); __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__159, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_IMI, 3247, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(3, 3247, __pyx_L1_error) + /* "talib/_func.pxi":3279 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def KAMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ __pyx_codeobj__161 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_KAMA, 3279, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__161)) __PYX_ERR(3, 3279, __pyx_L1_error) + /* "talib/_func.pxi":3310 + * 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__162 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_LINEARREG, 3310, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(3, 3310, __pyx_L1_error) + /* "talib/_func.pxi":3341 + * 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__163 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_LINEARREG_ANGLE, 3341, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__163)) __PYX_ERR(3, 3341, __pyx_L1_error) + /* "talib/_func.pxi":3372 + * 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__164 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_LINEARREG_INTERCEPT, 3372, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(3, 3372, __pyx_L1_error) + /* "talib/_func.pxi":3403 + * 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__165 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_LINEARREG_SLOPE, 3403, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__165)) __PYX_ERR(3, 3403, __pyx_L1_error) + /* "talib/_func.pxi":3434 + * 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__166 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_LN, 3434, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(3, 3434, __pyx_L1_error) + /* "talib/_func.pxi":3463 + * 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__167 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_LOG10, 3463, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__167)) __PYX_ERR(3, 3463, __pyx_L1_error) + /* "talib/_func.pxi":3492 + * 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__168 = 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__168)) __PYX_ERR(3, 3492, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__168); __Pyx_GIVEREF(__pyx_tuple__168); __pyx_codeobj__169 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__168, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MA, 3492, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__169)) __PYX_ERR(3, 3492, __pyx_L1_error) + /* "talib/_func.pxi":3524 + * 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__170 = 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__170)) __PYX_ERR(3, 3524, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__170); __Pyx_GIVEREF(__pyx_tuple__170); __pyx_codeobj__171 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__170, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACD, 3524, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__171)) __PYX_ERR(3, 3524, __pyx_L1_error) + /* "talib/_func.pxi":3563 + * 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__172 = 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__172)) __PYX_ERR(3, 3563, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__172); __Pyx_GIVEREF(__pyx_tuple__172); __pyx_codeobj__173 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__172, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACDEXT, 3563, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__173)) __PYX_ERR(3, 3563, __pyx_L1_error) + /* "talib/_func.pxi":3605 + * 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__174 = 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__174)) __PYX_ERR(3, 3605, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__174); __Pyx_GIVEREF(__pyx_tuple__174); __pyx_codeobj__175 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__174, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACDFIX, 3605, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__175)) __PYX_ERR(3, 3605, __pyx_L1_error) + /* "talib/_func.pxi":3642 + * 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__176 = 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__176)) __PYX_ERR(3, 3642, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__176); __Pyx_GIVEREF(__pyx_tuple__176); __pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(3, 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_MAMA, 3642, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) __PYX_ERR(3, 3642, __pyx_L1_error) + /* "talib/_func.pxi":3677 + * 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__178 = 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__178)) __PYX_ERR(3, 3677, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__178); __Pyx_GIVEREF(__pyx_tuple__178); __pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 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_MAVP, 3677, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__179)) __PYX_ERR(3, 3677, __pyx_L1_error) + /* "talib/_func.pxi":3712 + * 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__180 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_MAX, 3712, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__180)) __PYX_ERR(3, 3712, __pyx_L1_error) + /* "talib/_func.pxi":3743 + * 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__181 = 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__181)) __PYX_ERR(3, 3743, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__181); __Pyx_GIVEREF(__pyx_tuple__181); __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAXINDEX, 3743, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(3, 3743, __pyx_L1_error) + /* "talib/_func.pxi":3777 + * 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__183 = 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__183)) __PYX_ERR(3, 3777, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__183); __Pyx_GIVEREF(__pyx_tuple__183); __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__183, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MEDPRICE, 3777, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(3, 3777, __pyx_L1_error) + /* "talib/_func.pxi":3807 + * 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__185 = 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__185)) __PYX_ERR(3, 3807, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__185); __Pyx_GIVEREF(__pyx_tuple__185); __pyx_codeobj__186 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__185, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MFI, 3807, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__186)) __PYX_ERR(3, 3807, __pyx_L1_error) + /* "talib/_func.pxi":3841 + * 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__187 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_MIDPOINT, 3841, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__187)) __PYX_ERR(3, 3841, __pyx_L1_error) + /* "talib/_func.pxi":3872 + * 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__188 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIDPRICE, 3872, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) __PYX_ERR(3, 3872, __pyx_L1_error) + /* "talib/_func.pxi":3904 + * 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__189 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_MIN, 3904, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__189)) __PYX_ERR(3, 3904, __pyx_L1_error) + /* "talib/_func.pxi":3935 + * 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__190 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MININDEX, 3935, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(3, 3935, __pyx_L1_error) + /* "talib/_func.pxi":3969 + * 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__191 = 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__191)) __PYX_ERR(3, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__191); __Pyx_GIVEREF(__pyx_tuple__191); __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__191, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINMAX, 3969, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(3, 3969, __pyx_L1_error) + /* "talib/_func.pxi":4003 + * 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__193 = 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__193)) __PYX_ERR(3, 4003, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__193); __Pyx_GIVEREF(__pyx_tuple__193); __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__193, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINMAXINDEX, 4003, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(3, 4003, __pyx_L1_error) + /* "talib/_func.pxi":4043 + * 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__195 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINUS_DI, 4043, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__195)) __PYX_ERR(3, 4043, __pyx_L1_error) + /* "talib/_func.pxi":4076 + * 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__196 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINUS_DM, 4076, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(3, 4076, __pyx_L1_error) + /* "talib/_func.pxi":4108 + * 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__197 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_MOM, 4108, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__197)) __PYX_ERR(3, 4108, __pyx_L1_error) + /* "talib/_func.pxi":4139 + * 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__198 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_MULT, 4139, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(3, 4139, __pyx_L1_error) + /* "talib/_func.pxi":4170 + * 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__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__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_NATR, 4170, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__199)) __PYX_ERR(3, 4170, __pyx_L1_error) + /* "talib/_func.pxi":4203 + * 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__200 = 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__200)) __PYX_ERR(3, 4203, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__200); __Pyx_GIVEREF(__pyx_tuple__200); __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__200, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_OBV, 4203, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) __PYX_ERR(3, 4203, __pyx_L1_error) + /* "talib/_func.pxi":4234 + * 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__202 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PLUS_DI, 4234, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(3, 4234, __pyx_L1_error) + /* "talib/_func.pxi":4267 + * 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__203 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PLUS_DM, 4267, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__203)) __PYX_ERR(3, 4267, __pyx_L1_error) + /* "talib/_func.pxi":4299 + * 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__204 = (PyObject*)__Pyx_PyCode_New(4, 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_PPO, 4299, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__204)) __PYX_ERR(3, 4299, __pyx_L1_error) + /* "talib/_func.pxi":4332 + * 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__205 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_ROC, 4332, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__205)) __PYX_ERR(3, 4332, __pyx_L1_error) + /* "talib/_func.pxi":4363 + * 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__206 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_ROCP, 4363, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__206)) __PYX_ERR(3, 4363, __pyx_L1_error) + /* "talib/_func.pxi":4394 + * 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__207 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_ROCR, 4394, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__207)) __PYX_ERR(3, 4394, __pyx_L1_error) + /* "talib/_func.pxi":4425 + * 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__208 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_ROCR100, 4425, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__208)) __PYX_ERR(3, 4425, __pyx_L1_error) + /* "talib/_func.pxi":4456 + * 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__209 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_RSI, 4456, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__209)) __PYX_ERR(3, 4456, __pyx_L1_error) + /* "talib/_func.pxi":4487 + * 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__210 = 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__210)) __PYX_ERR(3, 4487, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__210); __Pyx_GIVEREF(__pyx_tuple__210); __pyx_codeobj__211 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__210, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SAR, 4487, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__211)) __PYX_ERR(3, 4487, __pyx_L1_error) + /* "talib/_func.pxi":4520 + * 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__212 = 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__212)) __PYX_ERR(3, 4520, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__212); __Pyx_GIVEREF(__pyx_tuple__212); __pyx_codeobj__213 = (PyObject*)__Pyx_PyCode_New(10, 0, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__212, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SAREXT, 4520, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__213)) __PYX_ERR(3, 4520, __pyx_L1_error) + /* "talib/_func.pxi":4559 + * 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__214 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_SIN, 4559, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__214)) __PYX_ERR(3, 4559, __pyx_L1_error) + /* "talib/_func.pxi":4588 + * 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__215 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_SINH, 4588, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__215)) __PYX_ERR(3, 4588, __pyx_L1_error) + /* "talib/_func.pxi":4617 + * 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__216 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_SMA, 4617, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__216)) __PYX_ERR(3, 4617, __pyx_L1_error) + /* "talib/_func.pxi":4648 + * 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__217 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_SQRT, 4648, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__217)) __PYX_ERR(3, 4648, __pyx_L1_error) + /* "talib/_func.pxi":4677 + * 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__218 = 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__218)) __PYX_ERR(3, 4677, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__218); __Pyx_GIVEREF(__pyx_tuple__218); __pyx_codeobj__219 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__218, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STDDEV, 4677, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__219)) __PYX_ERR(3, 4677, __pyx_L1_error) + /* "talib/_func.pxi":4709 + * 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__220 = 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__220)) __PYX_ERR(3, 4709, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__220); __Pyx_GIVEREF(__pyx_tuple__220); __pyx_codeobj__221 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__220, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCH, 4709, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__221)) __PYX_ERR(3, 4709, __pyx_L1_error) + /* "talib/_func.pxi":4749 + * 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__222 = 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__222)) __PYX_ERR(3, 4749, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__222); __Pyx_GIVEREF(__pyx_tuple__222); __pyx_codeobj__223 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__222, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCHF, 4749, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__223)) __PYX_ERR(3, 4749, __pyx_L1_error) + /* "talib/_func.pxi":4787 + * 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__224 = 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__224)) __PYX_ERR(3, 4787, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__224); __Pyx_GIVEREF(__pyx_tuple__224); __pyx_codeobj__225 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__224, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCHRSI, 4787, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__225)) __PYX_ERR(3, 4787, __pyx_L1_error) + /* "talib/_func.pxi":4824 + * 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__226 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_SUB, 4824, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__226)) __PYX_ERR(3, 4824, __pyx_L1_error) + /* "talib/_func.pxi":4855 + * 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__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__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SUM, 4855, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__227)) __PYX_ERR(3, 4855, __pyx_L1_error) + /* "talib/_func.pxi":4886 + * 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__228 = 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__228)) __PYX_ERR(3, 4886, __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_T3, 4886, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__229)) __PYX_ERR(3, 4886, __pyx_L1_error) + /* "talib/_func.pxi":4918 + * 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__230 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_TAN, 4918, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__230)) __PYX_ERR(3, 4918, __pyx_L1_error) + /* "talib/_func.pxi":4947 + * 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__231 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 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_TANH, 4947, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__231)) __PYX_ERR(3, 4947, __pyx_L1_error) + /* "talib/_func.pxi":4976 + * 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__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__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TEMA, 4976, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__232)) __PYX_ERR(3, 4976, __pyx_L1_error) + /* "talib/_func.pxi":5007 + * 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__233 = 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__233)) __PYX_ERR(3, 5007, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__233); __Pyx_GIVEREF(__pyx_tuple__233); __pyx_codeobj__234 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__233, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TRANGE, 5007, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__234)) __PYX_ERR(3, 5007, __pyx_L1_error) + /* "talib/_func.pxi":5038 + * 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__235 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_TRIMA, 5038, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__235)) __PYX_ERR(3, 5038, __pyx_L1_error) + /* "talib/_func.pxi":5069 + * 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__236 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_TRIX, 5069, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__236)) __PYX_ERR(3, 5069, __pyx_L1_error) + /* "talib/_func.pxi":5100 + * 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__237 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_TSF, 5100, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(3, 5100, __pyx_L1_error) + /* "talib/_func.pxi":5131 + * 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__238 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__233, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TYPPRICE, 5131, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__238)) __PYX_ERR(3, 5131, __pyx_L1_error) + /* "talib/_func.pxi":5162 + * 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__239 = 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__239)) __PYX_ERR(3, 5162, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__239); __Pyx_GIVEREF(__pyx_tuple__239); __pyx_codeobj__240 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__239, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ULTOSC, 5162, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__240)) __PYX_ERR(3, 5162, __pyx_L1_error) + /* "talib/_func.pxi":5197 + * 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__241 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__218, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_VAR, 5197, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__241)) __PYX_ERR(3, 5197, __pyx_L1_error) + /* "talib/_func.pxi":5229 + * 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__242 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__233, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WCLPRICE, 5229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__242)) __PYX_ERR(3, 5229, __pyx_L1_error) + /* "talib/_func.pxi":5260 + * 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__243 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WILLR, 5260, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__243)) __PYX_ERR(3, 5260, __pyx_L1_error) + /* "talib/_func.pxi":5293 + * 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__244 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 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_WMA, 5293, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__244)) __PYX_ERR(3, 5293, __pyx_L1_error) + /* "talib/_abstract.pxi":74 + * if sys.version >= '3': + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return bytes(s, 'ascii') + * + */ __pyx_tuple__246 = PyTuple_Pack(1, __pyx_n_s_s); if (unlikely(!__pyx_tuple__246)) __PYX_ERR(1, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__246); __Pyx_GIVEREF(__pyx_tuple__246); __pyx_codeobj__247 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__246, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str2bytes, 74, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__247)) __PYX_ERR(1, 74, __pyx_L1_error) + /* "talib/_abstract.pxi":77 + * return bytes(s, 'ascii') + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b.decode('ascii') + * + */ __pyx_tuple__248 = PyTuple_Pack(1, __pyx_n_s_b); if (unlikely(!__pyx_tuple__248)) __PYX_ERR(1, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__248); __Pyx_GIVEREF(__pyx_tuple__248); __pyx_codeobj__249 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__248, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_bytes2str, 77, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__249)) __PYX_ERR(1, 77, __pyx_L1_error) + /* "talib/_abstract.pxi":82 + * else: + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return s + * + */ __pyx_codeobj__250 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__246, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str2bytes, 82, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__250)) __PYX_ERR(1, 82, __pyx_L1_error) + /* "talib/_abstract.pxi":85 + * return s + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b + * + */ __pyx_codeobj__251 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__248, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_bytes2str, 85, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__251)) __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__252 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__252)) __PYX_ERR(1, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__252); __Pyx_GIVEREF(__pyx_tuple__252); @@ -94568,47 +130322,124 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__253); __Pyx_GIVEREF(__pyx_tuple__253); + /* "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__254 = 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__254)) __PYX_ERR(1, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__254); __Pyx_GIVEREF(__pyx_tuple__254); __pyx_codeobj__255 = (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__254, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_init, 117, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__255)) __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__256 = 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__256)) __PYX_ERR(1, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__256); __Pyx_GIVEREF(__pyx_tuple__256); __pyx_codeobj__257 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 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_local_2, 130, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__257)) __PYX_ERR(1, 130, __pyx_L1_error) + /* "talib/_abstract.pxi":172 + * return local + * + * @property # <<<<<<<<<<<<<< + * def info(self): + * """ + */ __pyx_codeobj__258 = (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__258)) __PYX_ERR(1, 172, __pyx_L1_error) + /* "talib/_abstract.pxi":179 + * return self.__local.info.copy() + * + * @property # <<<<<<<<<<<<<< + * def function_flags(self): + * """ + */ __pyx_codeobj__259 = (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__259)) __PYX_ERR(1, 179, __pyx_L1_error) + /* "talib/_abstract.pxi":186 + * return self.__local.info['function_flags'] + * + * @property # <<<<<<<<<<<<<< + * def output_flags(self): + * """ + */ __pyx_codeobj__260 = (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__260)) __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__261 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_input_name); if (unlikely(!__pyx_tuple__261)) __PYX_ERR(1, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__261); __Pyx_GIVEREF(__pyx_tuple__261); __pyx_codeobj__262 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__261, __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__262)) __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__263 = 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__263)) __PYX_ERR(1, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__263); __Pyx_GIVEREF(__pyx_tuple__263); __pyx_codeobj__264 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__263, __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__264)) __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__265 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_local); if (unlikely(!__pyx_tuple__265)) __PYX_ERR(1, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__265); __Pyx_GIVEREF(__pyx_tuple__265); __pyx_codeobj__266 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__265, __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__266)) __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__267 = 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__267)) __PYX_ERR(1, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__267); __Pyx_GIVEREF(__pyx_tuple__267); __pyx_codeobj__268 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__267, __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__268)) __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__269 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_opt_input); if (unlikely(!__pyx_tuple__269)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__269); __Pyx_GIVEREF(__pyx_tuple__269); __pyx_codeobj__270 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __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_get_parameters, 276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__270)) __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__271 = 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__271)) __PYX_ERR(1, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__271); __Pyx_GIVEREF(__pyx_tuple__271); @@ -94617,539 +130448,1813 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__273); __Pyx_GIVEREF(__pyx_tuple__273); + /* "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__274 = 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__274)) __PYX_ERR(1, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__274); __Pyx_GIVEREF(__pyx_tuple__274); __pyx_codeobj__275 = (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__274, __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__275)) __PYX_ERR(1, 301, __pyx_L1_error) + /* "talib/_abstract.pxi":336 + * local.outputs_valid = False + * + * @property # <<<<<<<<<<<<<< + * def lookback(self): + * """ + */ __pyx_tuple__276 = 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__276)) __PYX_ERR(1, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__276); __Pyx_GIVEREF(__pyx_tuple__276); __pyx_codeobj__277 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__276, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_lookback, 336, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__277)) __PYX_ERR(1, 336, __pyx_L1_error) + /* "talib/_abstract.pxi":357 + * return lookback + * + * @property # <<<<<<<<<<<<<< + * def output_names(self): + * """ + */ __pyx_tuple__278 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__278)) __PYX_ERR(1, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__278); __Pyx_GIVEREF(__pyx_tuple__278); __pyx_codeobj__279 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__278, __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__279)) __PYX_ERR(1, 357, __pyx_L1_error) + /* "talib/_abstract.pxi":367 + * return ret + * + * @property # <<<<<<<<<<<<<< + * def outputs(self): + * """ + */ __pyx_tuple__280 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_index); if (unlikely(!__pyx_tuple__280)) __PYX_ERR(1, 367, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__280); __Pyx_GIVEREF(__pyx_tuple__280); __pyx_codeobj__281 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__280, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_outputs, 367, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__281)) __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__282 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_input_arrays); if (unlikely(!__pyx_tuple__282)) __PYX_ERR(1, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__282); __Pyx_GIVEREF(__pyx_tuple__282); __pyx_codeobj__283 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__282, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_run, 399, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__283)) __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__284 = 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__284)) __PYX_ERR(1, 411, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__284); __Pyx_GIVEREF(__pyx_tuple__284); __pyx_codeobj__285 = (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__284, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_call, 411, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__285)) __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__286 = 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__286)) __PYX_ERR(1, 477, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__286); __Pyx_GIVEREF(__pyx_tuple__286); __pyx_codeobj__287 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __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__287)) __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__288 = 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__288)) __PYX_ERR(1, 489, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__288); __Pyx_GIVEREF(__pyx_tuple__288); __pyx_codeobj__289 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__288, __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__289)) __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__290 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_input_name, __pyx_n_s_value, __pyx_n_s_type); if (unlikely(!__pyx_tuple__290)) __PYX_ERR(1, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__290); __Pyx_GIVEREF(__pyx_tuple__290); __pyx_codeobj__291 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__290, __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__291)) __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__292 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_input_name, __pyx_n_s_local, __pyx_n_s_value); if (unlikely(!__pyx_tuple__292)) __PYX_ERR(1, 535, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__292); __Pyx_GIVEREF(__pyx_tuple__292); __pyx_codeobj__293 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 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_get_opt_input_value, 535, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__293)) __PYX_ERR(1, 535, __pyx_L1_error) + /* "talib/_abstract.pxi":545 + * return value + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return '%s' % self.info + * + */ __pyx_codeobj__294 = (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__294)) __PYX_ERR(1, 545, __pyx_L1_error) + /* "talib/_abstract.pxi":548 + * return '%s' % self.info + * + * def __unicode__(self): # <<<<<<<<<<<<<< + * return unicode(self.__str__()) + * + */ __pyx_codeobj__295 = (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__295)) __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__296 = (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__296)) __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__297 = PyTuple_Pack(3, __pyx_n_s_table, __pyx_n_s_groups, __pyx_n_s_i); if (unlikely(!__pyx_tuple__297)) __PYX_ERR(1, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__297); __Pyx_GIVEREF(__pyx_tuple__297); __pyx_codeobj__298 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__297, __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__298)) __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__299 = PyTuple_Pack(4, __pyx_n_s_group, __pyx_n_s_table, __pyx_n_s_functions, __pyx_n_s_i); if (unlikely(!__pyx_tuple__299)) __PYX_ERR(1, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__299); __Pyx_GIVEREF(__pyx_tuple__299); __pyx_codeobj__300 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__299, __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__300)) __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__301 = 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__301)) __PYX_ERR(1, 589, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__301); __Pyx_GIVEREF(__pyx_tuple__301); __pyx_codeobj__302 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__301, __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__302)) __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__303 = PyTuple_Pack(3, __pyx_n_s_function_name, __pyx_n_s_info, __pyx_n_s_retCode); if (unlikely(!__pyx_tuple__303)) __PYX_ERR(1, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__303); __Pyx_GIVEREF(__pyx_tuple__303); __pyx_codeobj__304 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__303, __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__304)) __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__305 = 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__305)) __PYX_ERR(1, 667, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__305); __Pyx_GIVEREF(__pyx_tuple__305); __pyx_codeobj__306 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 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_ta_getInputParameterInfo, 667, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__306)) __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__307 = 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__307)) __PYX_ERR(1, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__307); __Pyx_GIVEREF(__pyx_tuple__307); __pyx_codeobj__308 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 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__abstract_pxi, __pyx_n_s_ta_getOptInputParameterInfo, 688, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__308)) __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__309 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 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_ta_getOutputParameterInfo, 712, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__309)) __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__310 = 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__310)) __PYX_ERR(1, 732, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__310); __Pyx_GIVEREF(__pyx_tuple__310); __pyx_codeobj__311 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__310, __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__311)) __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_ACCBANDS( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ __pyx_tuple__312 = PyTuple_Pack(14, __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_outrealupperband, __pyx_n_s_outrealmiddleband, __pyx_n_s_outreallowerband); if (unlikely(!__pyx_tuple__312)) __PYX_ERR(4, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__312); __Pyx_GIVEREF(__pyx_tuple__312); __pyx_codeobj__313 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__312, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ACCBANDS, 9, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__313)) __PYX_ERR(4, 9, __pyx_L1_error) + /* "talib/_stream.pxi":50 + * 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_ACOS( np.ndarray real not None ): + */ __pyx_tuple__314 = 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__314)) __PYX_ERR(4, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__314); __Pyx_GIVEREF(__pyx_tuple__314); __pyx_codeobj__315 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ACOS, 50, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__315)) __PYX_ERR(4, 50, __pyx_L1_error) + /* "talib/_stream.pxi":77 + * 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__316 = 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__316)) __PYX_ERR(4, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__316); __Pyx_GIVEREF(__pyx_tuple__316); __pyx_codeobj__317 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__316, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AD, 77, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__317)) __PYX_ERR(4, 77, __pyx_L1_error) + /* "talib/_stream.pxi":113 + * 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__318 = 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__318)) __PYX_ERR(4, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__318); __Pyx_GIVEREF(__pyx_tuple__318); __pyx_codeobj__319 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 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_ADD, 113, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__319)) __PYX_ERR(4, 113, __pyx_L1_error) + /* "talib/_stream.pxi":144 + * 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__320 = 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__320)) __PYX_ERR(4, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__320); __Pyx_GIVEREF(__pyx_tuple__320); __pyx_codeobj__321 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 15, 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_ADOSC, 144, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__321)) __PYX_ERR(4, 144, __pyx_L1_error) + /* "talib/_stream.pxi":183 + * 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__322 = 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__322)) __PYX_ERR(4, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__322); __Pyx_GIVEREF(__pyx_tuple__322); __pyx_codeobj__323 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 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_ADX, 183, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__323)) __PYX_ERR(4, 183, __pyx_L1_error) + /* "talib/_stream.pxi":218 + * 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__324 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 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_ADXR, 218, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__324)) __PYX_ERR(4, 218, __pyx_L1_error) + /* "talib/_stream.pxi":253 + * 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__325 = 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__325)) __PYX_ERR(4, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__325); __Pyx_GIVEREF(__pyx_tuple__325); __pyx_codeobj__326 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__325, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_APO, 253, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__326)) __PYX_ERR(4, 253, __pyx_L1_error) + /* "talib/_stream.pxi":284 + * 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__327 = 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__327)) __PYX_ERR(4, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__327); __Pyx_GIVEREF(__pyx_tuple__327); __pyx_codeobj__328 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 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_AROON, 284, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__328)) __PYX_ERR(4, 284, __pyx_L1_error) + /* "talib/_stream.pxi":319 + * 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__329 = 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__329)) __PYX_ERR(4, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__329); __Pyx_GIVEREF(__pyx_tuple__329); __pyx_codeobj__330 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 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_AROONOSC, 319, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__330)) __PYX_ERR(4, 319, __pyx_L1_error) + /* "talib/_stream.pxi":351 + * 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__331 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ASIN, 351, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__331)) __PYX_ERR(4, 351, __pyx_L1_error) + /* "talib/_stream.pxi":378 + * 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__332 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ATAN, 378, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__332)) __PYX_ERR(4, 378, __pyx_L1_error) + /* "talib/_stream.pxi":405 + * 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__333 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 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_ATR, 405, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__333)) __PYX_ERR(4, 405, __pyx_L1_error) + /* "talib/_stream.pxi":440 + * 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__334 = 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__334)) __PYX_ERR(4, 440, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__334); __Pyx_GIVEREF(__pyx_tuple__334); __pyx_codeobj__335 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__334, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AVGPRICE, 440, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__335)) __PYX_ERR(4, 440, __pyx_L1_error) + /* "talib/_stream.pxi":476 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ): + */ __pyx_tuple__336 = 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__336)) __PYX_ERR(4, 476, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__336); __Pyx_GIVEREF(__pyx_tuple__336); __pyx_codeobj__337 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AVGDEV, 476, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__337)) __PYX_ERR(4, 476, __pyx_L1_error) + /* "talib/_stream.pxi":505 + * 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__338 = 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__338)) __PYX_ERR(4, 505, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__338); __Pyx_GIVEREF(__pyx_tuple__338); __pyx_codeobj__339 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__338, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_BBANDS, 505, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__339)) __PYX_ERR(4, 505, __pyx_L1_error) + /* "talib/_stream.pxi":543 + * 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__340 = 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__340)) __PYX_ERR(4, 543, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__340); __Pyx_GIVEREF(__pyx_tuple__340); __pyx_codeobj__341 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__340, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_BETA, 543, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__341)) __PYX_ERR(4, 543, __pyx_L1_error) + /* "talib/_stream.pxi":576 + * 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__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__334, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_BOP, 576, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__342)) __PYX_ERR(4, 576, __pyx_L1_error) + /* "talib/_stream.pxi":612 + * 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__343 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 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_CCI, 612, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__343)) __PYX_ERR(4, 612, __pyx_L1_error) + /* "talib/_stream.pxi":647 + * 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__344 = 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__344)) __PYX_ERR(4, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__344); __Pyx_GIVEREF(__pyx_tuple__344); __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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL2CROWS, 647, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__345)) __PYX_ERR(4, 647, __pyx_L1_error) + /* "talib/_stream.pxi":683 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3BLACKCROWS, 683, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__346)) __PYX_ERR(4, 683, __pyx_L1_error) + /* "talib/_stream.pxi":719 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3INSIDE, 719, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__347)) __PYX_ERR(4, 719, __pyx_L1_error) + /* "talib/_stream.pxi":755 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3LINESTRIKE, 755, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__348)) __PYX_ERR(4, 755, __pyx_L1_error) + /* "talib/_stream.pxi":791 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3OUTSIDE, 791, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__349)) __PYX_ERR(4, 791, __pyx_L1_error) + /* "talib/_stream.pxi":827 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3STARSINSOUTH, 827, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__350)) __PYX_ERR(4, 827, __pyx_L1_error) + /* "talib/_stream.pxi":863 + * 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__351 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3WHITESOLDIERS, 863, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__351)) __PYX_ERR(4, 863, __pyx_L1_error) + /* "talib/_stream.pxi":899 + * 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__352 = 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__352)) __PYX_ERR(4, 899, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__352); __Pyx_GIVEREF(__pyx_tuple__352); __pyx_codeobj__353 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__352, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLABANDONEDBABY, 899, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__353)) __PYX_ERR(4, 899, __pyx_L1_error) + /* "talib/_stream.pxi":937 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLADVANCEBLOCK, 937, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__354)) __PYX_ERR(4, 937, __pyx_L1_error) + /* "talib/_stream.pxi":973 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLBELTHOLD, 973, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__355)) __PYX_ERR(4, 973, __pyx_L1_error) + /* "talib/_stream.pxi":1009 + * 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__356 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLBREAKAWAY, 1009, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__356)) __PYX_ERR(4, 1009, __pyx_L1_error) + /* "talib/_stream.pxi":1045 + * 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__357 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLCLOSINGMARUBOZU, 1045, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__357)) __PYX_ERR(4, 1045, __pyx_L1_error) + /* "talib/_stream.pxi":1081 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLCONCEALBABYSWALL, 1081, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__358)) __PYX_ERR(4, 1081, __pyx_L1_error) + /* "talib/_stream.pxi":1117 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLCOUNTERATTACK, 1117, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__359)) __PYX_ERR(4, 1117, __pyx_L1_error) + /* "talib/_stream.pxi":1153 + * 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__360 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__352, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDARKCLOUDCOVER, 1153, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__360)) __PYX_ERR(4, 1153, __pyx_L1_error) + /* "talib/_stream.pxi":1191 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDOJI, 1191, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__361)) __PYX_ERR(4, 1191, __pyx_L1_error) + /* "talib/_stream.pxi":1227 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDOJISTAR, 1227, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__362)) __PYX_ERR(4, 1227, __pyx_L1_error) + /* "talib/_stream.pxi":1263 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDRAGONFLYDOJI, 1263, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__363)) __PYX_ERR(4, 1263, __pyx_L1_error) + /* "talib/_stream.pxi":1299 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLENGULFING, 1299, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__364)) __PYX_ERR(4, 1299, __pyx_L1_error) + /* "talib/_stream.pxi":1335 + * 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__365 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__352, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLEVENINGDOJISTAR, 1335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__365)) __PYX_ERR(4, 1335, __pyx_L1_error) + /* "talib/_stream.pxi":1373 + * 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__366 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__352, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLEVENINGSTAR, 1373, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__366)) __PYX_ERR(4, 1373, __pyx_L1_error) + /* "talib/_stream.pxi":1411 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLGAPSIDESIDEWHITE, 1411, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__367)) __PYX_ERR(4, 1411, __pyx_L1_error) + /* "talib/_stream.pxi":1447 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLGRAVESTONEDOJI, 1447, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__368)) __PYX_ERR(4, 1447, __pyx_L1_error) + /* "talib/_stream.pxi":1483 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHAMMER, 1483, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__369)) __PYX_ERR(4, 1483, __pyx_L1_error) + /* "talib/_stream.pxi":1519 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHANGINGMAN, 1519, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__370)) __PYX_ERR(4, 1519, __pyx_L1_error) + /* "talib/_stream.pxi":1555 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHARAMI, 1555, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__371)) __PYX_ERR(4, 1555, __pyx_L1_error) + /* "talib/_stream.pxi":1591 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHARAMICROSS, 1591, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__372)) __PYX_ERR(4, 1591, __pyx_L1_error) + /* "talib/_stream.pxi":1627 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHIGHWAVE, 1627, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__373)) __PYX_ERR(4, 1627, __pyx_L1_error) + /* "talib/_stream.pxi":1663 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHIKKAKE, 1663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__374)) __PYX_ERR(4, 1663, __pyx_L1_error) + /* "talib/_stream.pxi":1699 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHIKKAKEMOD, 1699, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__375)) __PYX_ERR(4, 1699, __pyx_L1_error) + /* "talib/_stream.pxi":1735 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHOMINGPIGEON, 1735, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__376)) __PYX_ERR(4, 1735, __pyx_L1_error) + /* "talib/_stream.pxi":1771 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLIDENTICAL3CROWS, 1771, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__377)) __PYX_ERR(4, 1771, __pyx_L1_error) + /* "talib/_stream.pxi":1807 + * 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__378 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLINNECK, 1807, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__378)) __PYX_ERR(4, 1807, __pyx_L1_error) + /* "talib/_stream.pxi":1843 + * 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__379 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLINVERTEDHAMMER, 1843, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__379)) __PYX_ERR(4, 1843, __pyx_L1_error) + /* "talib/_stream.pxi":1879 + * 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__380 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLKICKING, 1879, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__380)) __PYX_ERR(4, 1879, __pyx_L1_error) + /* "talib/_stream.pxi":1915 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLKICKINGBYLENGTH, 1915, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__381)) __PYX_ERR(4, 1915, __pyx_L1_error) + /* "talib/_stream.pxi":1951 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLLADDERBOTTOM, 1951, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__382)) __PYX_ERR(4, 1951, __pyx_L1_error) + /* "talib/_stream.pxi":1987 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLLONGLEGGEDDOJI, 1987, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__383)) __PYX_ERR(4, 1987, __pyx_L1_error) + /* "talib/_stream.pxi":2023 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLLONGLINE, 2023, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__384)) __PYX_ERR(4, 2023, __pyx_L1_error) + /* "talib/_stream.pxi":2059 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMARUBOZU, 2059, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__385)) __PYX_ERR(4, 2059, __pyx_L1_error) + /* "talib/_stream.pxi":2095 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMATCHINGLOW, 2095, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__386)) __PYX_ERR(4, 2095, __pyx_L1_error) + /* "talib/_stream.pxi":2131 + * 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__387 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__352, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMATHOLD, 2131, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__387)) __PYX_ERR(4, 2131, __pyx_L1_error) + /* "talib/_stream.pxi":2169 + * 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__388 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__352, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMORNINGDOJISTAR, 2169, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__388)) __PYX_ERR(4, 2169, __pyx_L1_error) + /* "talib/_stream.pxi":2207 + * 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__389 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__352, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMORNINGSTAR, 2207, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__389)) __PYX_ERR(4, 2207, __pyx_L1_error) + /* "talib/_stream.pxi":2245 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLONNECK, 2245, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__390)) __PYX_ERR(4, 2245, __pyx_L1_error) + /* "talib/_stream.pxi":2281 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLPIERCING, 2281, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__391)) __PYX_ERR(4, 2281, __pyx_L1_error) + /* "talib/_stream.pxi":2317 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLRICKSHAWMAN, 2317, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__392)) __PYX_ERR(4, 2317, __pyx_L1_error) + /* "talib/_stream.pxi":2353 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLRISEFALL3METHODS, 2353, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__393)) __PYX_ERR(4, 2353, __pyx_L1_error) + /* "talib/_stream.pxi":2389 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSEPARATINGLINES, 2389, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__394)) __PYX_ERR(4, 2389, __pyx_L1_error) + /* "talib/_stream.pxi":2425 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSHOOTINGSTAR, 2425, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__395)) __PYX_ERR(4, 2425, __pyx_L1_error) + /* "talib/_stream.pxi":2461 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSHORTLINE, 2461, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__396)) __PYX_ERR(4, 2461, __pyx_L1_error) + /* "talib/_stream.pxi":2497 + * 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__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__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSPINNINGTOP, 2497, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__397)) __PYX_ERR(4, 2497, __pyx_L1_error) + /* "talib/_stream.pxi":2533 + * 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__398 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSTALLEDPATTERN, 2533, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__398)) __PYX_ERR(4, 2533, __pyx_L1_error) + /* "talib/_stream.pxi":2569 + * 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__399 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSTICKSANDWICH, 2569, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__399)) __PYX_ERR(4, 2569, __pyx_L1_error) + /* "talib/_stream.pxi":2605 + * 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__400 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTAKURI, 2605, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__400)) __PYX_ERR(4, 2605, __pyx_L1_error) + /* "talib/_stream.pxi":2641 + * 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__401 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTASUKIGAP, 2641, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__401)) __PYX_ERR(4, 2641, __pyx_L1_error) + /* "talib/_stream.pxi":2677 + * 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__402 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTHRUSTING, 2677, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__402)) __PYX_ERR(4, 2677, __pyx_L1_error) + /* "talib/_stream.pxi":2713 + * 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__403 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTRISTAR, 2713, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__403)) __PYX_ERR(4, 2713, __pyx_L1_error) + /* "talib/_stream.pxi":2749 + * 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__404 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLUNIQUE3RIVER, 2749, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__404)) __PYX_ERR(4, 2749, __pyx_L1_error) + /* "talib/_stream.pxi":2785 + * 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__405 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLUPSIDEGAP2CROWS, 2785, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__405)) __PYX_ERR(4, 2785, __pyx_L1_error) + /* "talib/_stream.pxi":2821 + * 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__406 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLXSIDEGAP3METHODS, 2821, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__406)) __PYX_ERR(4, 2821, __pyx_L1_error) + /* "talib/_stream.pxi":2857 + * 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__407 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CEIL, 2857, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__407)) __PYX_ERR(4, 2857, __pyx_L1_error) + /* "talib/_stream.pxi":2884 + * 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_codeobj__408 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CMO, 2884, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__408)) __PYX_ERR(4, 2884, __pyx_L1_error) + /* "talib/_stream.pxi":2913 + * 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__409 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__340, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CORREL, 2913, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__409)) __PYX_ERR(4, 2913, __pyx_L1_error) + /* "talib/_stream.pxi":2946 + * 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__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__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_COS, 2946, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__410)) __PYX_ERR(4, 2946, __pyx_L1_error) + /* "talib/_stream.pxi":2973 + * 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__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__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_COSH, 2973, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__411)) __PYX_ERR(4, 2973, __pyx_L1_error) + /* "talib/_stream.pxi":3000 + * 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__412 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_DEMA, 3000, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__412)) __PYX_ERR(4, 3000, __pyx_L1_error) + /* "talib/_stream.pxi":3029 + * 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__413 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 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_DIV, 3029, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__413)) __PYX_ERR(4, 3029, __pyx_L1_error) + /* "talib/_stream.pxi":3060 + * 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__414 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 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_DX, 3060, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__414)) __PYX_ERR(4, 3060, __pyx_L1_error) + /* "talib/_stream.pxi":3095 + * 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__415 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_EMA, 3095, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__415)) __PYX_ERR(4, 3095, __pyx_L1_error) + /* "talib/_stream.pxi":3124 + * 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__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__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_EXP, 3124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__416)) __PYX_ERR(4, 3124, __pyx_L1_error) + /* "talib/_stream.pxi":3151 + * 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__417 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_FLOOR, 3151, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__417)) __PYX_ERR(4, 3151, __pyx_L1_error) + /* "talib/_stream.pxi":3178 + * 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__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__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_DCPERIOD, 3178, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__418)) __PYX_ERR(4, 3178, __pyx_L1_error) + /* "talib/_stream.pxi":3205 + * 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__419 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_DCPHASE, 3205, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__419)) __PYX_ERR(4, 3205, __pyx_L1_error) + /* "talib/_stream.pxi":3232 + * 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__420 = 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__420)) __PYX_ERR(4, 3232, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__420); __Pyx_GIVEREF(__pyx_tuple__420); __pyx_codeobj__421 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__420, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_PHASOR, 3232, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__421)) __PYX_ERR(4, 3232, __pyx_L1_error) + /* "talib/_stream.pxi":3262 + * 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__422 = 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__422)) __PYX_ERR(4, 3262, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__422); __Pyx_GIVEREF(__pyx_tuple__422); __pyx_codeobj__423 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__422, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_SINE, 3262, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__423)) __PYX_ERR(4, 3262, __pyx_L1_error) + /* "talib/_stream.pxi":3292 + * 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__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__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_TRENDLINE, 3292, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__424)) __PYX_ERR(4, 3292, __pyx_L1_error) + /* "talib/_stream.pxi":3319 + * 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__425 = 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__425)) __PYX_ERR(4, 3319, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__425); __Pyx_GIVEREF(__pyx_tuple__425); __pyx_codeobj__426 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__425, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_TRENDMODE, 3319, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__426)) __PYX_ERR(4, 3319, __pyx_L1_error) + /* "talib/_stream.pxi":3346 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ __pyx_tuple__427 = PyTuple_Pack(10, __pyx_n_s_open, __pyx_n_s_close, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_open_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__427)) __PYX_ERR(4, 3346, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__427); __Pyx_GIVEREF(__pyx_tuple__427); __pyx_codeobj__428 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__427, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_IMI, 3346, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__428)) __PYX_ERR(4, 3346, __pyx_L1_error) + /* "talib/_stream.pxi":3378 + * return outreal + * + * @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__429 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_KAMA, 3378, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__429)) __PYX_ERR(4, 3378, __pyx_L1_error) + /* "talib/_stream.pxi":3407 + * 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__430 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG, 3407, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__430)) __PYX_ERR(4, 3407, __pyx_L1_error) + /* "talib/_stream.pxi":3436 + * 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__431 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG_ANGLE, 3436, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__431)) __PYX_ERR(4, 3436, __pyx_L1_error) + /* "talib/_stream.pxi":3465 + * 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__432 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG_INTERCEPT, 3465, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__432)) __PYX_ERR(4, 3465, __pyx_L1_error) + /* "talib/_stream.pxi":3494 + * 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__433 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG_SLOPE, 3494, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__433)) __PYX_ERR(4, 3494, __pyx_L1_error) + /* "talib/_stream.pxi":3523 + * 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__434 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LN, 3523, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__434)) __PYX_ERR(4, 3523, __pyx_L1_error) + /* "talib/_stream.pxi":3550 + * 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__435 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LOG10, 3550, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__435)) __PYX_ERR(4, 3550, __pyx_L1_error) + /* "talib/_stream.pxi":3577 + * 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__436 = 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__436)) __PYX_ERR(4, 3577, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__436); __Pyx_GIVEREF(__pyx_tuple__436); __pyx_codeobj__437 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 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_MA, 3577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__437)) __PYX_ERR(4, 3577, __pyx_L1_error) + /* "talib/_stream.pxi":3607 + * 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__438 = 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__438)) __PYX_ERR(4, 3607, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__438); __Pyx_GIVEREF(__pyx_tuple__438); __pyx_codeobj__439 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__438, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MACD, 3607, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__439)) __PYX_ERR(4, 3607, __pyx_L1_error) + /* "talib/_stream.pxi":3644 + * 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__440 = 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__440)) __PYX_ERR(4, 3644, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__440); __Pyx_GIVEREF(__pyx_tuple__440); __pyx_codeobj__441 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__440, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MACDEXT, 3644, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__441)) __PYX_ERR(4, 3644, __pyx_L1_error) + /* "talib/_stream.pxi":3684 + * 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__442 = 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__442)) __PYX_ERR(4, 3684, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__442); __Pyx_GIVEREF(__pyx_tuple__442); __pyx_codeobj__443 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__442, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MACDFIX, 3684, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__443)) __PYX_ERR(4, 3684, __pyx_L1_error) + /* "talib/_stream.pxi":3719 + * 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__444 = 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__444)) __PYX_ERR(4, 3719, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__444); __Pyx_GIVEREF(__pyx_tuple__444); __pyx_codeobj__445 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__444, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAMA, 3719, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__445)) __PYX_ERR(4, 3719, __pyx_L1_error) + /* "talib/_stream.pxi":3752 + * 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__446 = 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__446)) __PYX_ERR(4, 3752, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__446); __Pyx_GIVEREF(__pyx_tuple__446); __pyx_codeobj__447 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__446, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAVP, 3752, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__447)) __PYX_ERR(4, 3752, __pyx_L1_error) + /* "talib/_stream.pxi":3787 + * 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__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__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAX, 3787, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__448)) __PYX_ERR(4, 3787, __pyx_L1_error) + /* "talib/_stream.pxi":3816 + * 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__449 = 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__449)) __PYX_ERR(4, 3816, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__449); __Pyx_GIVEREF(__pyx_tuple__449); __pyx_codeobj__450 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 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_MAXINDEX, 3816, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__450)) __PYX_ERR(4, 3816, __pyx_L1_error) + /* "talib/_stream.pxi":3845 + * 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__451 = 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__451)) __PYX_ERR(4, 3845, __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_MEDPRICE, 3845, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__452)) __PYX_ERR(4, 3845, __pyx_L1_error) + /* "talib/_stream.pxi":3875 + * 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__453 = 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__453)) __PYX_ERR(4, 3875, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__453); __Pyx_GIVEREF(__pyx_tuple__453); __pyx_codeobj__454 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__453, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MFI, 3875, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__454)) __PYX_ERR(4, 3875, __pyx_L1_error) + /* "talib/_stream.pxi":3913 + * 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__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__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MIDPOINT, 3913, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__455)) __PYX_ERR(4, 3913, __pyx_L1_error) + /* "talib/_stream.pxi":3942 + * 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__456 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 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_MIDPRICE, 3942, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__456)) __PYX_ERR(4, 3942, __pyx_L1_error) + /* "talib/_stream.pxi":3974 + * 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__457 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MIN, 3974, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__457)) __PYX_ERR(4, 3974, __pyx_L1_error) + /* "talib/_stream.pxi":4003 + * 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__458 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 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_MININDEX, 4003, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__458)) __PYX_ERR(4, 4003, __pyx_L1_error) + /* "talib/_stream.pxi":4032 + * 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__459 = 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__459)) __PYX_ERR(4, 4032, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__459); __Pyx_GIVEREF(__pyx_tuple__459); __pyx_codeobj__460 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__459, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINMAX, 4032, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__460)) __PYX_ERR(4, 4032, __pyx_L1_error) + /* "talib/_stream.pxi":4064 + * 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__461 = 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__461)) __PYX_ERR(4, 4064, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__461); __Pyx_GIVEREF(__pyx_tuple__461); __pyx_codeobj__462 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__461, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINMAXINDEX, 4064, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__462)) __PYX_ERR(4, 4064, __pyx_L1_error) + /* "talib/_stream.pxi":4096 + * 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__463 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 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_DI, 4096, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__463)) __PYX_ERR(4, 4096, __pyx_L1_error) + /* "talib/_stream.pxi":4131 + * 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__464 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 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_MINUS_DM, 4131, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__464)) __PYX_ERR(4, 4131, __pyx_L1_error) + /* "talib/_stream.pxi":4163 + * 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__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__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MOM, 4163, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__465)) __PYX_ERR(4, 4163, __pyx_L1_error) + /* "talib/_stream.pxi":4192 + * 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__466 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 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_MULT, 4192, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__466)) __PYX_ERR(4, 4192, __pyx_L1_error) + /* "talib/_stream.pxi":4223 + * 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__467 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 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_NATR, 4223, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__467)) __PYX_ERR(4, 4223, __pyx_L1_error) + /* "talib/_stream.pxi":4258 + * 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__468 = 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__468)) __PYX_ERR(4, 4258, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__468); __Pyx_GIVEREF(__pyx_tuple__468); __pyx_codeobj__469 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 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_OBV, 4258, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__469)) __PYX_ERR(4, 4258, __pyx_L1_error) + /* "talib/_stream.pxi":4289 + * 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__470 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 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_DI, 4289, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__470)) __PYX_ERR(4, 4289, __pyx_L1_error) + /* "talib/_stream.pxi":4324 + * 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__471 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 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_PLUS_DM, 4324, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__471)) __PYX_ERR(4, 4324, __pyx_L1_error) + /* "talib/_stream.pxi":4356 + * 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__472 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__325, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_PPO, 4356, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__472)) __PYX_ERR(4, 4356, __pyx_L1_error) + /* "talib/_stream.pxi":4387 + * 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__473 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROC, 4387, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__473)) __PYX_ERR(4, 4387, __pyx_L1_error) + /* "talib/_stream.pxi":4416 + * 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__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__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROCP, 4416, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__474)) __PYX_ERR(4, 4416, __pyx_L1_error) + /* "talib/_stream.pxi":4445 + * 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__475 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROCR, 4445, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__475)) __PYX_ERR(4, 4445, __pyx_L1_error) + /* "talib/_stream.pxi":4474 + * 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__476 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROCR100, 4474, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__476)) __PYX_ERR(4, 4474, __pyx_L1_error) + /* "talib/_stream.pxi":4503 + * 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__477 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_RSI, 4503, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__477)) __PYX_ERR(4, 4503, __pyx_L1_error) + /* "talib/_stream.pxi":4532 + * 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__478 = 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__478)) __PYX_ERR(4, 4532, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__478); __Pyx_GIVEREF(__pyx_tuple__478); __pyx_codeobj__479 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 11, 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_SAR, 4532, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__479)) __PYX_ERR(4, 4532, __pyx_L1_error) + /* "talib/_stream.pxi":4565 + * 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__480 = 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__480)) __PYX_ERR(4, 4565, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__480); __Pyx_GIVEREF(__pyx_tuple__480); __pyx_codeobj__481 = (PyObject*)__Pyx_PyCode_New(10, 0, 0, 17, 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_SAREXT, 4565, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__481)) __PYX_ERR(4, 4565, __pyx_L1_error) + /* "talib/_stream.pxi":4604 + * 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__482 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SIN, 4604, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__482)) __PYX_ERR(4, 4604, __pyx_L1_error) + /* "talib/_stream.pxi":4631 + * 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__483 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SINH, 4631, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__483)) __PYX_ERR(4, 4631, __pyx_L1_error) + /* "talib/_stream.pxi":4658 + * 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__484 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SMA, 4658, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__484)) __PYX_ERR(4, 4658, __pyx_L1_error) + /* "talib/_stream.pxi":4687 + * 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__485 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SQRT, 4687, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__485)) __PYX_ERR(4, 4687, __pyx_L1_error) + /* "talib/_stream.pxi":4714 + * 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__486 = 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__486)) __PYX_ERR(4, 4714, __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_STDDEV, 4714, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__487)) __PYX_ERR(4, 4714, __pyx_L1_error) + /* "talib/_stream.pxi":4744 + * 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__488 = 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__488)) __PYX_ERR(4, 4744, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__488); __Pyx_GIVEREF(__pyx_tuple__488); __pyx_codeobj__489 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__488, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STOCH, 4744, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__489)) __PYX_ERR(4, 4744, __pyx_L1_error) + /* "talib/_stream.pxi":4786 + * 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__490 = 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__490)) __PYX_ERR(4, 4786, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__490); __Pyx_GIVEREF(__pyx_tuple__490); __pyx_codeobj__491 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__490, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STOCHF, 4786, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__491)) __PYX_ERR(4, 4786, __pyx_L1_error) + /* "talib/_stream.pxi":4826 + * 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__492 = 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__492)) __PYX_ERR(4, 4826, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__492); __Pyx_GIVEREF(__pyx_tuple__492); __pyx_codeobj__493 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__492, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STOCHRSI, 4826, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__493)) __PYX_ERR(4, 4826, __pyx_L1_error) + /* "talib/_stream.pxi":4861 + * 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__494 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 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_SUB, 4861, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__494)) __PYX_ERR(4, 4861, __pyx_L1_error) + /* "talib/_stream.pxi":4892 + * 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__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__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SUM, 4892, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__495)) __PYX_ERR(4, 4892, __pyx_L1_error) + /* "talib/_stream.pxi":4921 + * 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__496 = 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__496)) __PYX_ERR(4, 4921, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__496); __Pyx_GIVEREF(__pyx_tuple__496); __pyx_codeobj__497 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__496, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_T3, 4921, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__497)) __PYX_ERR(4, 4921, __pyx_L1_error) + /* "talib/_stream.pxi":4951 + * 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__498 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TAN, 4951, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__498)) __PYX_ERR(4, 4951, __pyx_L1_error) + /* "talib/_stream.pxi":4978 + * 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__499 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TANH, 4978, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__499)) __PYX_ERR(4, 4978, __pyx_L1_error) + /* "talib/_stream.pxi":5005 + * 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__500 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TEMA, 5005, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__500)) __PYX_ERR(4, 5005, __pyx_L1_error) + /* "talib/_stream.pxi":5034 + * 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__501 = 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__501)) __PYX_ERR(4, 5034, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__501); __Pyx_GIVEREF(__pyx_tuple__501); __pyx_codeobj__502 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__501, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TRANGE, 5034, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__502)) __PYX_ERR(4, 5034, __pyx_L1_error) + /* "talib/_stream.pxi":5067 + * 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__503 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TRIMA, 5067, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__503)) __PYX_ERR(4, 5067, __pyx_L1_error) + /* "talib/_stream.pxi":5096 + * 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__504 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TRIX, 5096, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__504)) __PYX_ERR(4, 5096, __pyx_L1_error) + /* "talib/_stream.pxi":5125 + * 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__505 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TSF, 5125, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__505)) __PYX_ERR(4, 5125, __pyx_L1_error) + /* "talib/_stream.pxi":5154 + * 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__506 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__501, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TYPPRICE, 5154, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__506)) __PYX_ERR(4, 5154, __pyx_L1_error) + /* "talib/_stream.pxi":5187 + * 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__507 = 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__507)) __PYX_ERR(4, 5187, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__507); __Pyx_GIVEREF(__pyx_tuple__507); __pyx_codeobj__508 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__507, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ULTOSC, 5187, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__508)) __PYX_ERR(4, 5187, __pyx_L1_error) + /* "talib/_stream.pxi":5224 + * 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__509 = (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_VAR, 5224, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__509)) __PYX_ERR(4, 5224, __pyx_L1_error) + /* "talib/_stream.pxi":5254 + * 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__510 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__501, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_WCLPRICE, 5254, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__510)) __PYX_ERR(4, 5254, __pyx_L1_error) + /* "talib/_stream.pxi":5287 + * 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__511 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 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_WILLR, 5287, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__511)) __PYX_ERR(4, 5287, __pyx_L1_error) + /* "talib/_stream.pxi":5322 + * 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__512 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_WMA, 5322, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__512)) __PYX_ERR(4, 5322, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; @@ -95246,33 +132351,33 @@ static int __Pyx_modinit_type_import_code(void) { /*--- 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", + __pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_0_10(__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), + sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyTypeObject), #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject), + sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyTypeObject), #else - sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyHeapTypeObject), + sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyHeapTypeObject), #endif - __Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(6, 9, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Warn_3_0_10); 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, 272, __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, 272, __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, 317, __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, 321, __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, 360, __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, 865, __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, 867, __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, 869, __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, 871, __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, 873, __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, 875, __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, 877, __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, 879, __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, 881, __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, 883, __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, 947, __pyx_L1_error) + __pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyArray_Descr),__Pyx_ImportType_CheckSize_Ignore_3_0_10); if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 272, __pyx_L1_error) + __pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyArrayIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_10); if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 317, __pyx_L1_error) + __pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyArrayMultiIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_10); if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 321, __pyx_L1_error) + __pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyArrayObject),__Pyx_ImportType_CheckSize_Ignore_3_0_10); if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 360, __pyx_L1_error) + __pyx_ptype_5numpy_generic = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_10); if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 865, __pyx_L1_error) + __pyx_ptype_5numpy_number = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "number", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_10); if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 867, __pyx_L1_error) + __pyx_ptype_5numpy_integer = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_10); if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 869, __pyx_L1_error) + __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_10); if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 871, __pyx_L1_error) + __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_10); if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 873, __pyx_L1_error) + __pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_10); if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 875, __pyx_L1_error) + __pyx_ptype_5numpy_floating = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_10); if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 877, __pyx_L1_error) + __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_10); if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 879, __pyx_L1_error) + __pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_10); if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 881, __pyx_L1_error) + __pyx_ptype_5numpy_character = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "character", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_10); if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 883, __pyx_L1_error) + __pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_0_10(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_10(PyUFuncObject),__Pyx_ImportType_CheckSize_Ignore_3_0_10); if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 947, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; @@ -95606,26 +132711,61 @@ if (!__Pyx_RefNanny) { 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) @@ -95636,6 +132776,13 @@ if (!__Pyx_RefNanny) { 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))) { @@ -95731,16 +132878,37 @@ if (!__Pyx_RefNanny) { 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) @@ -95749,6 +132917,13 @@ if (!__Pyx_RefNanny) { __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) @@ -95757,12 +132932,26 @@ if (!__Pyx_RefNanny) { 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) @@ -95859,6 +133048,13 @@ if (!__Pyx_RefNanny) { __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) @@ -95870,30 +133066,72 @@ if (!__Pyx_RefNanny) { __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) @@ -95904,6 +133142,13 @@ if (!__Pyx_RefNanny) { 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))) { @@ -95990,6 +133235,13 @@ if (!__Pyx_RefNanny) { __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) @@ -96015,6 +133267,13 @@ if (!__Pyx_RefNanny) { 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) @@ -96023,6 +133282,13 @@ if (!__Pyx_RefNanny) { __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) @@ -96031,6 +133297,13 @@ if (!__Pyx_RefNanny) { 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) @@ -96041,6 +133314,13 @@ if (!__Pyx_RefNanny) { 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))) { @@ -96103,6 +133383,13 @@ if (!__Pyx_RefNanny) { 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) @@ -96111,6 +133398,13 @@ if (!__Pyx_RefNanny) { __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) @@ -96119,16 +133413,36 @@ if (!__Pyx_RefNanny) { 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); @@ -96143,17 +133457,45 @@ if (!__Pyx_RefNanny) { __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":144 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ACCBANDS( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ACCBANDS(high, low, close[, timeperiod=?]) + * + */ __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":142 + * + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ACCBANDS( 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(3, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); @@ -96166,26 +133508,61 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_ACCBANDS, __pyx_t_4) < 0) __PYX_ERR(3, 142, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":181 + * return outrealupperband , outrealmiddleband , outreallowerband + * + * @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_21ACOS, 0, __pyx_n_s_ACOS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ACOS, __pyx_t_4) < 0) __PYX_ERR(3, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":210 + * 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_23AD, 0, __pyx_n_s_AD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_AD, __pyx_t_4) < 0) __PYX_ERR(3, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":242 + * 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_25ADD, 0, __pyx_n_s_ADD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADD, __pyx_t_4) < 0) __PYX_ERR(3, 242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":275 + * @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, 275, __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, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":273 + * 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, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); @@ -96201,9 +133578,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADOSC, __pyx_t_3) < 0) __PYX_ERR(3, 273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":310 + * @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, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":308 + * 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, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); @@ -96216,9 +133607,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADX, __pyx_t_3) < 0) __PYX_ERR(3, 308, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":343 + * @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, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":341 + * 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, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); @@ -96231,6 +133636,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADXR, __pyx_t_3) < 0) __PYX_ERR(3, 341, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":376 + * @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, 376, __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, 376, __pyx_L1_error) @@ -96238,6 +133650,13 @@ if (!__Pyx_RefNanny) { __pyx_t_4 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":374 + * 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, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_3); @@ -96256,9 +133675,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_APO, __pyx_t_4) < 0) __PYX_ERR(3, 374, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":409 + * @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, 409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":407 + * 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, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_4); @@ -96271,9 +133704,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_AROON, __pyx_t_4) < 0) __PYX_ERR(3, 407, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":444 + * @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, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":442 + * 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, 442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_4); @@ -96286,19 +133733,47 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_AROONOSC, __pyx_t_4) < 0) __PYX_ERR(3, 442, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":474 + * 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_39ASIN, 0, __pyx_n_s_ASIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ASIN, __pyx_t_4) < 0) __PYX_ERR(3, 474, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":503 + * 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_41ATAN, 0, __pyx_n_s_ATAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ATAN, __pyx_t_4) < 0) __PYX_ERR(3, 503, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":534 + * @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, 534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":532 + * 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, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_4); @@ -96311,14 +133786,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_ATR, __pyx_t_4) < 0) __PYX_ERR(3, 532, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":565 + * 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_45AVGPRICE, 0, __pyx_n_s_AVGPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_AVGPRICE, __pyx_t_4) < 0) __PYX_ERR(3, 565, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":599 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ AVGDEV(real[, timeperiod=?]) + * + */ __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":597 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ): + */ __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_4); @@ -96331,6 +133827,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_AVGDEV, __pyx_t_4) < 0) __PYX_ERR(3, 597, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":630 + * @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, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_14 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 630, __pyx_L1_error) @@ -96340,6 +133843,13 @@ if (!__Pyx_RefNanny) { __pyx_t_3 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":628 + * 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, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_4); @@ -96361,9 +133871,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_BBANDS, __pyx_t_3) < 0) __PYX_ERR(3, 628, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":670 + * @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, 670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":668 + * 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, 668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96376,14 +133900,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_BETA, __pyx_t_3) < 0) __PYX_ERR(3, 668, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":701 + * 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_53BOP, 0, __pyx_n_s_BOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_BOP, __pyx_t_3) < 0) __PYX_ERR(3, 701, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":735 + * @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, 735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":733 + * 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, 733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96396,44 +133941,107 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_CCI, __pyx_t_3) < 0) __PYX_ERR(3, 733, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":766 + * 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_57CDL2CROWS, 0, __pyx_n_s_CDL2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__77)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL2CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 766, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":798 + * 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_59CDL3BLACKCROWS, 0, __pyx_n_s_CDL3BLACKCROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3BLACKCROWS, __pyx_t_3) < 0) __PYX_ERR(3, 798, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":830 + * 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_61CDL3INSIDE, 0, __pyx_n_s_CDL3INSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__79)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3INSIDE, __pyx_t_3) < 0) __PYX_ERR(3, 830, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":862 + * 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_63CDL3LINESTRIKE, 0, __pyx_n_s_CDL3LINESTRIKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3LINESTRIKE, __pyx_t_3) < 0) __PYX_ERR(3, 862, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":894 + * 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_65CDL3OUTSIDE, 0, __pyx_n_s_CDL3OUTSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__81)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3OUTSIDE, __pyx_t_3) < 0) __PYX_ERR(3, 894, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":926 + * 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_67CDL3STARSINSOUTH, 0, __pyx_n_s_CDL3STARSINSOUTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3STARSINSOUTH, __pyx_t_3) < 0) __PYX_ERR(3, 926, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":958 + * 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_69CDL3WHITESOLDIERS, 0, __pyx_n_s_CDL3WHITESOLDIERS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__83)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3WHITESOLDIERS, __pyx_t_3) < 0) __PYX_ERR(3, 958, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":992 + * @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, 992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":990 + * 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, 990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96446,39 +134054,95 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLABANDONEDBABY, __pyx_t_3) < 0) __PYX_ERR(3, 990, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1024 + * 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_73CDLADVANCEBLOCK, 0, __pyx_n_s_CDLADVANCEBLOCK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLADVANCEBLOCK, __pyx_t_3) < 0) __PYX_ERR(3, 1024, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1056 + * 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_75CDLBELTHOLD, 0, __pyx_n_s_CDLBELTHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLBELTHOLD, __pyx_t_3) < 0) __PYX_ERR(3, 1056, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1088 + * 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_77CDLBREAKAWAY, 0, __pyx_n_s_CDLBREAKAWAY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLBREAKAWAY, __pyx_t_3) < 0) __PYX_ERR(3, 1088, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1120 + * 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_79CDLCLOSINGMARUBOZU, 0, __pyx_n_s_CDLCLOSINGMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCLOSINGMARUBOZU, __pyx_t_3) < 0) __PYX_ERR(3, 1120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1152 + * 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_81CDLCONCEALBABYSWALL, 0, __pyx_n_s_CDLCONCEALBABYSWALL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCONCEALBABYSWALL, __pyx_t_3) < 0) __PYX_ERR(3, 1152, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1184 + * 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_83CDLCOUNTERATTACK, 0, __pyx_n_s_CDLCOUNTERATTACK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__91)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCOUNTERATTACK, __pyx_t_3) < 0) __PYX_ERR(3, 1184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1218 + * @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, 1218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":1216 + * 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, 1216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96491,29 +134155,71 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDARKCLOUDCOVER, __pyx_t_3) < 0) __PYX_ERR(3, 1216, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1250 + * 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_87CDLDOJI, 0, __pyx_n_s_CDLDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__93)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1250, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1282 + * 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_89CDLDOJISTAR, 0, __pyx_n_s_CDLDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1282, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1314 + * 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_91CDLDRAGONFLYDOJI, 0, __pyx_n_s_CDLDRAGONFLYDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__95)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDRAGONFLYDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1314, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1346 + * 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_93CDLENGULFING, 0, __pyx_n_s_CDLENGULFING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLENGULFING, __pyx_t_3) < 0) __PYX_ERR(3, 1346, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1380 + * @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, 1380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":1378 + * 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, 1378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96526,9 +134232,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLEVENINGDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1378, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1414 + * @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, 1414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":1412 + * 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, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96541,109 +134261,263 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLEVENINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1412, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1446 + * 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_99CDLGAPSIDESIDEWHITE, 0, __pyx_n_s_CDLGAPSIDESIDEWHITE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__99)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLGAPSIDESIDEWHITE, __pyx_t_3) < 0) __PYX_ERR(3, 1446, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1478 + * 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_101CDLGRAVESTONEDOJI, 0, __pyx_n_s_CDLGRAVESTONEDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__100)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLGRAVESTONEDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1478, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1510 + * 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_103CDLHAMMER, 0, __pyx_n_s_CDLHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__101)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHAMMER, __pyx_t_3) < 0) __PYX_ERR(3, 1510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1542 + * 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_105CDLHANGINGMAN, 0, __pyx_n_s_CDLHANGINGMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHANGINGMAN, __pyx_t_3) < 0) __PYX_ERR(3, 1542, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1574 + * 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_107CDLHARAMI, 0, __pyx_n_s_CDLHARAMI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__103)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHARAMI, __pyx_t_3) < 0) __PYX_ERR(3, 1574, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1606 + * 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_109CDLHARAMICROSS, 0, __pyx_n_s_CDLHARAMICROSS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__104)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHARAMICROSS, __pyx_t_3) < 0) __PYX_ERR(3, 1606, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1638 + * 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_111CDLHIGHWAVE, 0, __pyx_n_s_CDLHIGHWAVE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__105)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIGHWAVE, __pyx_t_3) < 0) __PYX_ERR(3, 1638, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1670 + * 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_113CDLHIKKAKE, 0, __pyx_n_s_CDLHIKKAKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__106)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIKKAKE, __pyx_t_3) < 0) __PYX_ERR(3, 1670, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1702 + * 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_115CDLHIKKAKEMOD, 0, __pyx_n_s_CDLHIKKAKEMOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__107)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIKKAKEMOD, __pyx_t_3) < 0) __PYX_ERR(3, 1702, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1734 + * 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_117CDLHOMINGPIGEON, 0, __pyx_n_s_CDLHOMINGPIGEON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHOMINGPIGEON, __pyx_t_3) < 0) __PYX_ERR(3, 1734, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1766 + * 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_119CDLIDENTICAL3CROWS, 0, __pyx_n_s_CDLIDENTICAL3CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__109)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLIDENTICAL3CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 1766, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1798 + * 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_121CDLINNECK, 0, __pyx_n_s_CDLINNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLINNECK, __pyx_t_3) < 0) __PYX_ERR(3, 1798, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1830 + * 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_123CDLINVERTEDHAMMER, 0, __pyx_n_s_CDLINVERTEDHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__111)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLINVERTEDHAMMER, __pyx_t_3) < 0) __PYX_ERR(3, 1830, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1862 + * 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_125CDLKICKING, 0, __pyx_n_s_CDLKICKING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLKICKING, __pyx_t_3) < 0) __PYX_ERR(3, 1862, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1894 + * 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_127CDLKICKINGBYLENGTH, 0, __pyx_n_s_CDLKICKINGBYLENGTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__113)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLKICKINGBYLENGTH, __pyx_t_3) < 0) __PYX_ERR(3, 1894, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1926 + * 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_129CDLLADDERBOTTOM, 0, __pyx_n_s_CDLLADDERBOTTOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLADDERBOTTOM, __pyx_t_3) < 0) __PYX_ERR(3, 1926, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1958 + * 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_131CDLLONGLEGGEDDOJI, 0, __pyx_n_s_CDLLONGLEGGEDDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__115)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLONGLEGGEDDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1958, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1990 + * 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_133CDLLONGLINE, 0, __pyx_n_s_CDLLONGLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLONGLINE, __pyx_t_3) < 0) __PYX_ERR(3, 1990, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2022 + * 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_135CDLMARUBOZU, 0, __pyx_n_s_CDLMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__117)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMARUBOZU, __pyx_t_3) < 0) __PYX_ERR(3, 2022, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2054 + * 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_137CDLMATCHINGLOW, 0, __pyx_n_s_CDLMATCHINGLOW, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMATCHINGLOW, __pyx_t_3) < 0) __PYX_ERR(3, 2054, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2088 + * @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, 2088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":2086 + * 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, 2086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96656,9 +134530,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMATHOLD, __pyx_t_3) < 0) __PYX_ERR(3, 2086, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2122 + * @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, 2122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":2120 + * 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, 2120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96671,9 +134559,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMORNINGDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2156 + * @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, 2156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":2154 + * 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, 2154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96686,99 +134588,239 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMORNINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2154, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2188 + * 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_145CDLONNECK, 0, __pyx_n_s_CDLONNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLONNECK, __pyx_t_3) < 0) __PYX_ERR(3, 2188, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2220 + * 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_147CDLPIERCING, 0, __pyx_n_s_CDLPIERCING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__123)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLPIERCING, __pyx_t_3) < 0) __PYX_ERR(3, 2220, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2252 + * 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_149CDLRICKSHAWMAN, 0, __pyx_n_s_CDLRICKSHAWMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLRICKSHAWMAN, __pyx_t_3) < 0) __PYX_ERR(3, 2252, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2284 + * 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_151CDLRISEFALL3METHODS, 0, __pyx_n_s_CDLRISEFALL3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__125)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLRISEFALL3METHODS, __pyx_t_3) < 0) __PYX_ERR(3, 2284, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2316 + * 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_153CDLSEPARATINGLINES, 0, __pyx_n_s_CDLSEPARATINGLINES, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSEPARATINGLINES, __pyx_t_3) < 0) __PYX_ERR(3, 2316, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2348 + * 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_155CDLSHOOTINGSTAR, 0, __pyx_n_s_CDLSHOOTINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__127)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSHOOTINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2348, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2380 + * 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_157CDLSHORTLINE, 0, __pyx_n_s_CDLSHORTLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSHORTLINE, __pyx_t_3) < 0) __PYX_ERR(3, 2380, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2412 + * 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_159CDLSPINNINGTOP, 0, __pyx_n_s_CDLSPINNINGTOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__129)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSPINNINGTOP, __pyx_t_3) < 0) __PYX_ERR(3, 2412, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2444 + * 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_161CDLSTALLEDPATTERN, 0, __pyx_n_s_CDLSTALLEDPATTERN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSTALLEDPATTERN, __pyx_t_3) < 0) __PYX_ERR(3, 2444, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2476 + * 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_163CDLSTICKSANDWICH, 0, __pyx_n_s_CDLSTICKSANDWICH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__131)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSTICKSANDWICH, __pyx_t_3) < 0) __PYX_ERR(3, 2476, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2508 + * 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_165CDLTAKURI, 0, __pyx_n_s_CDLTAKURI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTAKURI, __pyx_t_3) < 0) __PYX_ERR(3, 2508, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2540 + * 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_167CDLTASUKIGAP, 0, __pyx_n_s_CDLTASUKIGAP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__133)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTASUKIGAP, __pyx_t_3) < 0) __PYX_ERR(3, 2540, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2572 + * 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_169CDLTHRUSTING, 0, __pyx_n_s_CDLTHRUSTING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTHRUSTING, __pyx_t_3) < 0) __PYX_ERR(3, 2572, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2604 + * 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_171CDLTRISTAR, 0, __pyx_n_s_CDLTRISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__135)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTRISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2604, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2636 + * 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_173CDLUNIQUE3RIVER, 0, __pyx_n_s_CDLUNIQUE3RIVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__136)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLUNIQUE3RIVER, __pyx_t_3) < 0) __PYX_ERR(3, 2636, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2668 + * 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_175CDLUPSIDEGAP2CROWS, 0, __pyx_n_s_CDLUPSIDEGAP2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__137)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLUPSIDEGAP2CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 2668, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2700 + * 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_177CDLXSIDEGAP3METHODS, 0, __pyx_n_s_CDLXSIDEGAP3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__138)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLXSIDEGAP3METHODS, __pyx_t_3) < 0) __PYX_ERR(3, 2700, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2732 + * 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_179CEIL, 0, __pyx_n_s_CEIL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__139)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CEIL, __pyx_t_3) < 0) __PYX_ERR(3, 2732, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2763 + * @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, 2763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":2761 + * 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, 2761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96791,9 +134833,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMO, __pyx_t_3) < 0) __PYX_ERR(3, 2761, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2794 + * @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, 2794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":2792 + * 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, 2792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96806,19 +134862,47 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_CORREL, __pyx_t_3) < 0) __PYX_ERR(3, 2792, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2825 + * 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_185COS, 0, __pyx_n_s_COS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__142)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_COS, __pyx_t_3) < 0) __PYX_ERR(3, 2825, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2854 + * 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_187COSH, 0, __pyx_n_s_COSH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__143)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_COSH, __pyx_t_3) < 0) __PYX_ERR(3, 2854, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2885 + * @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, 2885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":2883 + * 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, 2883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96831,14 +134915,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_DEMA, __pyx_t_3) < 0) __PYX_ERR(3, 2883, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2914 + * 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_191DIV, 0, __pyx_n_s_DIV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__145)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_DIV, __pyx_t_3) < 0) __PYX_ERR(3, 2914, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2947 + * @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, 2947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":2945 + * 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, 2945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96851,9 +134956,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_DX, __pyx_t_3) < 0) __PYX_ERR(3, 2945, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2980 + * @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, 2980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":2978 + * 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, 2978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96866,49 +134985,119 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_EMA, __pyx_t_3) < 0) __PYX_ERR(3, 2978, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3009 + * 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_197EXP, 0, __pyx_n_s_EXP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__148)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_EXP, __pyx_t_3) < 0) __PYX_ERR(3, 3009, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3038 + * 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_199FLOOR, 0, __pyx_n_s_FLOOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__149)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_FLOOR, __pyx_t_3) < 0) __PYX_ERR(3, 3038, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3067 + * 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_201HT_DCPERIOD, 0, __pyx_n_s_HT_DCPERIOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__150)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3067, __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, 3067, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3096 + * 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_203HT_DCPHASE, 0, __pyx_n_s_HT_DCPHASE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__151)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3096, __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, 3096, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3125 + * 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_205HT_PHASOR, 0, __pyx_n_s_HT_PHASOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__153)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3125, __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, 3125, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3157 + * 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_207HT_SINE, 0, __pyx_n_s_HT_SINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__155)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3157, __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, 3157, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3189 + * 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_209HT_TRENDLINE, 0, __pyx_n_s_HT_TRENDLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__156)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3189, __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, 3189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3218 + * 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_211HT_TRENDMODE, 0, __pyx_n_s_HT_TRENDMODE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__158)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3218, __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, 3218, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3249 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ IMI(open, close[, timeperiod=?]) + * + */ __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":3247 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96921,9 +135110,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_IMI, __pyx_t_3) < 0) __PYX_ERR(3, 3247, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3281 + * @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, 3281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":3279 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def KAMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96936,9 +135139,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_KAMA, __pyx_t_3) < 0) __PYX_ERR(3, 3279, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3312 + * @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, 3312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":3310 + * 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, 3310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96951,9 +135168,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG, __pyx_t_3) < 0) __PYX_ERR(3, 3310, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3343 + * @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, 3343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":3341 + * 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, 3341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96966,9 +135197,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_ANGLE, __pyx_t_3) < 0) __PYX_ERR(3, 3341, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3374 + * @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, 3374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":3372 + * 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, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96981,9 +135226,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_INTERCEPT, __pyx_t_3) < 0) __PYX_ERR(3, 3372, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3405 + * @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, 3405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":3403 + * 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, 3403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_3); @@ -96996,21 +135255,49 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_SLOPE, __pyx_t_3) < 0) __PYX_ERR(3, 3403, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3434 + * 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_225LN, 0, __pyx_n_s_LN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__166)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_LN, __pyx_t_3) < 0) __PYX_ERR(3, 3434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3463 + * 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_227LOG10, 0, __pyx_n_s_LOG10, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__167)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOG10, __pyx_t_3) < 0) __PYX_ERR(3, 3463, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3494 + * @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, 3494, __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, 3494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); + /* "talib/_func.pxi":3492 + * 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, 3492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); @@ -97026,6 +135313,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA, __pyx_t_15) < 0) __PYX_ERR(3, 3492, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_func.pxi":3526 + * @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, 3526, __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, 3526, __pyx_L1_error) @@ -97033,6 +135327,13 @@ if (!__Pyx_RefNanny) { __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":3524 + * 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, 3524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_15); @@ -97051,6 +135352,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACD, __pyx_t_3) < 0) __PYX_ERR(3, 3524, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3565 + * @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, 3565, __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, 3565, __pyx_L1_error) @@ -97064,6 +135372,13 @@ if (!__Pyx_RefNanny) { __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":3563 + * 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, 3563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_3); @@ -97091,9 +135406,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACDEXT, __pyx_t_18) < 0) __PYX_ERR(3, 3563, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":3607 + * @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, 3607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":3605 + * 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, 3605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_18); @@ -97106,11 +135435,25 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACDFIX, __pyx_t_18) < 0) __PYX_ERR(3, 3605, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":3644 + * @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, 3644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); + /* "talib/_func.pxi":3642 + * 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, 3642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_18); @@ -97126,6 +135469,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAMA, __pyx_t_19) < 0) __PYX_ERR(3, 3642, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + /* "talib/_func.pxi":3679 + * @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, 3679, __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, 3679, __pyx_L1_error) @@ -97133,6 +135483,13 @@ if (!__Pyx_RefNanny) { __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":3677 + * 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, 3677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_19); @@ -97151,9 +135508,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAVP, __pyx_t_18) < 0) __PYX_ERR(3, 3677, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":3714 + * @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, 3714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":3712 + * 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, 3712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97166,9 +135537,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAX, __pyx_t_18) < 0) __PYX_ERR(3, 3712, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":3745 + * @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, 3745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":3743 + * 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, 3743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97181,14 +135566,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAXINDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3743, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":3777 + * 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_245MEDPRICE, 0, __pyx_n_s_MEDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__184)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (PyDict_SetItem(__pyx_d, __pyx_n_s_MEDPRICE, __pyx_t_18) < 0) __PYX_ERR(3, 3777, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":3809 + * @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, 3809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":3807 + * 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, 3807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97201,9 +135607,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MFI, __pyx_t_18) < 0) __PYX_ERR(3, 3807, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":3843 + * @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, 3843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":3841 + * 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, 3841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97216,9 +135636,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIDPOINT, __pyx_t_18) < 0) __PYX_ERR(3, 3841, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":3874 + * @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, 3874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":3872 + * 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, 3872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97231,9 +135665,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIDPRICE, __pyx_t_18) < 0) __PYX_ERR(3, 3872, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":3906 + * @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, 3906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":3904 + * 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, 3904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97246,9 +135694,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIN, __pyx_t_18) < 0) __PYX_ERR(3, 3904, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":3937 + * @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, 3937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":3935 + * 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, 3935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97261,9 +135723,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MININDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3935, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":3971 + * @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, 3971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":3969 + * 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, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97276,9 +135752,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINMAX, __pyx_t_18) < 0) __PYX_ERR(3, 3969, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":4005 + * @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, 4005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":4003 + * 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, 4003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97291,9 +135781,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINMAXINDEX, __pyx_t_18) < 0) __PYX_ERR(3, 4003, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":4045 + * @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, 4045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":4043 + * 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, 4043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97306,9 +135810,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINUS_DI, __pyx_t_18) < 0) __PYX_ERR(3, 4043, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":4078 + * @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, 4078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":4076 + * 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, 4076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97321,9 +135839,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINUS_DM, __pyx_t_18) < 0) __PYX_ERR(3, 4076, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":4110 + * @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, 4110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":4108 + * 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, 4108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97336,14 +135868,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_MOM, __pyx_t_18) < 0) __PYX_ERR(3, 4108, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":4139 + * 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_267MULT, 0, __pyx_n_s_MULT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__198)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (PyDict_SetItem(__pyx_d, __pyx_n_s_MULT, __pyx_t_18) < 0) __PYX_ERR(3, 4139, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":4172 + * @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, 4172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":4170 + * 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, 4170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97356,14 +135909,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_NATR, __pyx_t_18) < 0) __PYX_ERR(3, 4170, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":4203 + * 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_271OBV, 0, __pyx_n_s_OBV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__201)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (PyDict_SetItem(__pyx_d, __pyx_n_s_OBV, __pyx_t_18) < 0) __PYX_ERR(3, 4203, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":4236 + * @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, 4236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":4234 + * 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, 4234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97376,9 +135950,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_PLUS_DI, __pyx_t_18) < 0) __PYX_ERR(3, 4234, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":4269 + * @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, 4269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":4267 + * 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, 4267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -97391,6 +135979,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_PLUS_DM, __pyx_t_18) < 0) __PYX_ERR(3, 4267, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":4301 + * @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, 4301, __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, 4301, __pyx_L1_error) @@ -97398,6 +135993,13 @@ if (!__Pyx_RefNanny) { __pyx_t_4 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":4299 + * 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, 4299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_18); @@ -97416,9 +136018,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_PPO, __pyx_t_4) < 0) __PYX_ERR(3, 4299, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":4334 + * @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, 4334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":4332 + * 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, 4332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_4); @@ -97431,9 +136047,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROC, __pyx_t_4) < 0) __PYX_ERR(3, 4332, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":4365 + * @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, 4365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":4363 + * 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, 4363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_4); @@ -97446,9 +136076,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCP, __pyx_t_4) < 0) __PYX_ERR(3, 4363, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":4396 + * @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, 4396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":4394 + * 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, 4394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_4); @@ -97461,9 +136105,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCR, __pyx_t_4) < 0) __PYX_ERR(3, 4394, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":4427 + * @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, 4427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":4425 + * 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, 4425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_4); @@ -97476,9 +136134,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCR100, __pyx_t_4) < 0) __PYX_ERR(3, 4425, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":4458 + * @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, 4458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":4456 + * 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, 4456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_4); @@ -97491,11 +136163,25 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_RSI, __pyx_t_4) < 0) __PYX_ERR(3, 4456, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":4489 + * @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, 4489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_19 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); + /* "talib/_func.pxi":4487 + * 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, 4487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_4); @@ -97511,6 +136197,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_SAR, __pyx_t_19) < 0) __PYX_ERR(3, 4487, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + /* "talib/_func.pxi":4522 + * @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, 4522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4522, __pyx_L1_error) @@ -97528,6 +136221,13 @@ if (!__Pyx_RefNanny) { __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_func.pxi":4520 + * 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, 4520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_19); @@ -97561,19 +136261,47 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_SAREXT, __pyx_t_6) < 0) __PYX_ERR(3, 4520, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":4559 + * 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_293SIN, 0, __pyx_n_s_SIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__214)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_d, __pyx_n_s_SIN, __pyx_t_6) < 0) __PYX_ERR(3, 4559, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":4588 + * 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_295SINH, 0, __pyx_n_s_SINH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__215)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_d, __pyx_n_s_SINH, __pyx_t_6) < 0) __PYX_ERR(3, 4588, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":4619 + * @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, 4619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_func.pxi":4617 + * 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, 4617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); @@ -97586,16 +136314,37 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_SMA, __pyx_t_6) < 0) __PYX_ERR(3, 4617, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":4648 + * 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_299SQRT, 0, __pyx_n_s_SQRT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__217)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_d, __pyx_n_s_SQRT, __pyx_t_6) < 0) __PYX_ERR(3, 4648, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":4679 + * @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, 4679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_func.pxi":4677 + * 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, 4677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); @@ -97611,6 +136360,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_STDDEV, __pyx_t_7) < 0) __PYX_ERR(3, 4677, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_func.pxi":4711 + * @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, 4711, __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, 4711, __pyx_L1_error) @@ -97622,6 +136378,13 @@ if (!__Pyx_RefNanny) { __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_func.pxi":4709 + * 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, 4709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_7); @@ -97646,6 +136409,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCH, __pyx_t_2) < 0) __PYX_ERR(3, 4709, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4751 + * @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, 4751, __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, 4751, __pyx_L1_error) @@ -97653,6 +136423,13 @@ if (!__Pyx_RefNanny) { __pyx_t_14 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); + /* "talib/_func.pxi":4749 + * 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, 4749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); @@ -97671,6 +136448,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCHF, __pyx_t_14) < 0) __PYX_ERR(3, 4749, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + /* "talib/_func.pxi":4789 + * @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, 4789, __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, 4789, __pyx_L1_error) @@ -97680,6 +136464,13 @@ if (!__Pyx_RefNanny) { __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_func.pxi":4787 + * 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, 4787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_14); @@ -97701,14 +136492,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCHRSI, __pyx_t_2) < 0) __PYX_ERR(3, 4787, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4824 + * 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_309SUB, 0, __pyx_n_s_SUB, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__226)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_SUB, __pyx_t_2) < 0) __PYX_ERR(3, 4824, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4857 + * @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, 4857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_func.pxi":4855 + * 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, 4855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); @@ -97721,11 +136533,25 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_SUM, __pyx_t_2) < 0) __PYX_ERR(3, 4855, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4888 + * @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, 4888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":4886 + * 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, 4886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_2); @@ -97741,19 +136567,47 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_T3, __pyx_t_3) < 0) __PYX_ERR(3, 4886, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4918 + * 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_315TAN, 0, __pyx_n_s_TAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__230)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_TAN, __pyx_t_3) < 0) __PYX_ERR(3, 4918, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4947 + * 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_317TANH, 0, __pyx_n_s_TANH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__231)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_TANH, __pyx_t_3) < 0) __PYX_ERR(3, 4947, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4978 + * @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, 4978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":4976 + * 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, 4976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_3); @@ -97766,14 +136620,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_TEMA, __pyx_t_3) < 0) __PYX_ERR(3, 4976, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":5007 + * 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_321TRANGE, 0, __pyx_n_s_TRANGE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__234)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_TRANGE, __pyx_t_3) < 0) __PYX_ERR(3, 5007, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":5040 + * @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, 5040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":5038 + * 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, 5038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_3); @@ -97786,9 +136661,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_TRIMA, __pyx_t_3) < 0) __PYX_ERR(3, 5038, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":5071 + * @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, 5071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":5069 + * 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, 5069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_3); @@ -97801,9 +136690,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_TRIX, __pyx_t_3) < 0) __PYX_ERR(3, 5069, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":5102 + * @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, 5102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":5100 + * 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, 5100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_3); @@ -97816,11 +136719,25 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_TSF, __pyx_t_3) < 0) __PYX_ERR(3, 5100, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":5131 + * 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_329TYPPRICE, 0, __pyx_n_s_TYPPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__238)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_TYPPRICE, __pyx_t_3) < 0) __PYX_ERR(3, 5131, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":5164 + * @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, 5164, __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, 5164, __pyx_L1_error) @@ -97828,6 +136745,13 @@ if (!__Pyx_RefNanny) { __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_func.pxi":5162 + * 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, 5162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); @@ -97846,11 +136770,25 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_ULTOSC, __pyx_t_2) < 0) __PYX_ERR(3, 5162, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":5199 + * @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, 5199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_func.pxi":5197 + * 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, 5197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_2); @@ -97866,14 +136804,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_VAR, __pyx_t_6) < 0) __PYX_ERR(3, 5197, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":5229 + * 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_335WCLPRICE, 0, __pyx_n_s_WCLPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__242)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_d, __pyx_n_s_WCLPRICE, __pyx_t_6) < 0) __PYX_ERR(3, 5229, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":5262 + * @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, 5262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_func.pxi":5260 + * 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, 5260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_6); @@ -97886,9 +136845,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_WILLR, __pyx_t_6) < 0) __PYX_ERR(3, 5260, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":5295 + * @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, 5295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_func.pxi":5293 + * 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, 5293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_6); @@ -97901,6 +136874,11 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_WMA, __pyx_t_6) < 0) __PYX_ERR(3, 5293, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":5324 + * return outreal + * + * __TA_FUNCTION_NAMES__ = ["ACCBANDS","ACOS","AD","ADD","ADOSC","ADX","ADXR","APO","AROON","AROONOSC","ASIN","ATAN","ATR","AVGPRICE","AVGDEV","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","IMI","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(161); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_n_s_ACCBANDS); @@ -98389,16 +137367,37 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_FUNCTION_NAMES, __pyx_t_6) < 0) __PYX_ERR(3, 5324, __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: + */ __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 @@ -98408,6 +137407,13 @@ if (!__Pyx_RefNanny) { __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); @@ -98422,6 +137428,13 @@ if (!__Pyx_RefNanny) { __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; @@ -98446,6 +137459,13 @@ if (!__Pyx_RefNanny) { __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); @@ -98454,6 +137474,13 @@ if (!__Pyx_RefNanny) { __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); @@ -98474,6 +137501,13 @@ if (!__Pyx_RefNanny) { } 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); @@ -98488,18 +137522,46 @@ if (!__Pyx_RefNanny) { __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) @@ -98509,6 +137571,13 @@ if (!__Pyx_RefNanny) { 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)); @@ -98517,6 +137586,13 @@ if (!__Pyx_RefNanny) { 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); @@ -98525,6 +137601,13 @@ if (!__Pyx_RefNanny) { 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 @@ -98534,11 +137617,25 @@ if (!__Pyx_RefNanny) { __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) @@ -98550,6 +137647,13 @@ if (!__Pyx_RefNanny) { __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) @@ -98561,6 +137665,13 @@ if (!__Pyx_RefNanny) { __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) @@ -98569,6 +137680,13 @@ if (!__Pyx_RefNanny) { 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) @@ -98577,6 +137695,13 @@ if (!__Pyx_RefNanny) { 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; @@ -98601,6 +137726,13 @@ if (!__Pyx_RefNanny) { __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); @@ -98610,6 +137742,13 @@ if (!__Pyx_RefNanny) { __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 @@ -98619,6 +137758,13 @@ if (!__Pyx_RefNanny) { __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) @@ -98643,14 +137789,35 @@ if (!__Pyx_RefNanny) { __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; @@ -98672,6 +137839,13 @@ if (!__Pyx_RefNanny) { __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); @@ -98679,6 +137853,13 @@ if (!__Pyx_RefNanny) { } 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); @@ -98693,8 +137874,22 @@ if (!__Pyx_RefNanny) { __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; @@ -98703,6 +137898,13 @@ if (!__Pyx_RefNanny) { } 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); @@ -98717,6 +137919,13 @@ if (!__Pyx_RefNanny) { __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 @@ -98726,11 +137935,25 @@ if (!__Pyx_RefNanny) { __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) @@ -98742,6 +137965,13 @@ if (!__Pyx_RefNanny) { __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) @@ -98753,6 +137983,13 @@ if (!__Pyx_RefNanny) { __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) @@ -98761,6 +137998,13 @@ if (!__Pyx_RefNanny) { 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) @@ -98769,6 +138013,13 @@ if (!__Pyx_RefNanny) { 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; @@ -98793,6 +138044,13 @@ if (!__Pyx_RefNanny) { __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); @@ -98802,6 +138060,13 @@ if (!__Pyx_RefNanny) { __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 @@ -98811,6 +138076,13 @@ if (!__Pyx_RefNanny) { __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) @@ -98835,14 +138107,35 @@ if (!__Pyx_RefNanny) { __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; @@ -98864,6 +138157,13 @@ if (!__Pyx_RefNanny) { __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); @@ -98871,6 +138171,13 @@ if (!__Pyx_RefNanny) { } 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); @@ -98885,8 +138192,22 @@ if (!__Pyx_RefNanny) { __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; @@ -98895,6 +138216,13 @@ if (!__Pyx_RefNanny) { } 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); @@ -98909,6 +138237,13 @@ if (!__Pyx_RefNanny) { __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) @@ -98917,6 +138252,13 @@ if (!__Pyx_RefNanny) { 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) @@ -98925,6 +138267,13 @@ if (!__Pyx_RefNanny) { 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) @@ -98936,25 +138285,60 @@ if (!__Pyx_RefNanny) { __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_341str2bytes, 0, __pyx_n_s_str2bytes, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__247)); 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_343bytes2str, 0, __pyx_n_s_bytes2str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__249)); 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_345str2bytes, 0, __pyx_n_s_str2bytes, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__250)); 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_347bytes2str, 0, __pyx_n_s_bytes2str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__251)); 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) @@ -98962,6 +138346,13 @@ if (!__Pyx_RefNanny) { } __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__253); 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) @@ -98972,11 +138363,25 @@ if (!__Pyx_RefNanny) { if (unlikely((PyDict_SetItemString(__pyx_t_18, "__orig_bases__", __pyx_tuple__253) < 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__255)); 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__257)); 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) @@ -98985,6 +138390,13 @@ if (!__Pyx_RefNanny) { 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__258)); 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) @@ -98993,6 +138405,13 @@ if (!__Pyx_RefNanny) { 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__259)); 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) @@ -99001,6 +138420,13 @@ if (!__Pyx_RefNanny) { 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__260)); 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) @@ -99009,16 +138435,37 @@ if (!__Pyx_RefNanny) { 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__262)); 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__264)); 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(); @@ -99047,16 +138494,37 @@ if (!__Pyx_RefNanny) { 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__266)); 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__268)); 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(); @@ -99085,17 +138553,38 @@ if (!__Pyx_RefNanny) { 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__270)); 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__272)); 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__273); 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(); @@ -99124,11 +138613,25 @@ if (!__Pyx_RefNanny) { 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__275)); 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__277)); 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) @@ -99137,6 +138640,13 @@ if (!__Pyx_RefNanny) { 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__279)); 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) @@ -99145,6 +138655,13 @@ if (!__Pyx_RefNanny) { 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__281)); 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) @@ -99153,52 +138670,122 @@ if (!__Pyx_RefNanny) { 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__283)); 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__273); 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__285)); 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__287)); 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__289)); 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__291)); 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__293)); 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__294)); 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__295)); 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__296)); 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) @@ -99207,21 +138794,49 @@ if (!__Pyx_RefNanny) { __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_349_ta_getGroupTable, 0, __pyx_n_s_ta_getGroupTable, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__298)); 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_351_ta_getFuncTable, 0, __pyx_n_s_ta_getFuncTable, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__300)); 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_353__get_flags, 0, __pyx_n_s_get_flags, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__302)); 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) @@ -99231,6 +138846,13 @@ if (!__Pyx_RefNanny) { 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) @@ -99243,6 +138865,13 @@ if (!__Pyx_RefNanny) { 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) @@ -99261,36 +138890,92 @@ if (!__Pyx_RefNanny) { 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_355_ta_getFuncInfo, 0, __pyx_n_s_ta_getFuncInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__304)); 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_357_ta_getInputParameterInfo, 0, __pyx_n_s_ta_getInputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__306)); 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_359_ta_getOptInputParameterInfo, 0, __pyx_n_s_ta_getOptInputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__308)); 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_361_ta_getOutputParameterInfo, 0, __pyx_n_s_ta_getOutputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__309)); 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_363_get_defaults_and_docs, 0, __pyx_n_s_get_defaults_and_docs, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__311)); 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":11 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ACCBANDS( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ACCBANDS(high, low, close[, timeperiod=?]) + * + */ __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "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_ACCBANDS( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); @@ -99303,26 +138988,61 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ACCBANDS, __pyx_t_2) < 0) __PYX_ERR(4, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":50 + * 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_ACOS( np.ndarray real not None ): + */ __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_367stream_ACOS, 0, __pyx_n_s_stream_ACOS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__315)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 50, __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, 50, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":77 + * 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_369stream_AD, 0, __pyx_n_s_stream_AD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__317)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 77, __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, 77, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":113 + * 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_371stream_ADD, 0, __pyx_n_s_stream_ADD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__319)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 113, __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, 113, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":146 + * @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, 146, __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, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":144 + * 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, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_2); @@ -99338,9 +139058,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADOSC, __pyx_t_6) < 0) __PYX_ERR(4, 144, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":185 + * @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, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":183 + * 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, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_6); @@ -99353,9 +139087,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADX, __pyx_t_6) < 0) __PYX_ERR(4, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":220 + * @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, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":218 + * 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, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_6); @@ -99368,6 +139116,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADXR, __pyx_t_6) < 0) __PYX_ERR(4, 218, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":255 + * @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, 255, __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, 255, __pyx_L1_error) @@ -99375,6 +139130,13 @@ if (!__Pyx_RefNanny) { __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_stream.pxi":253 + * 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, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); @@ -99393,9 +139155,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_APO, __pyx_t_2) < 0) __PYX_ERR(4, 253, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":286 + * @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, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_stream.pxi":284 + * 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, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); @@ -99408,9 +139184,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AROON, __pyx_t_2) < 0) __PYX_ERR(4, 284, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":321 + * @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, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_stream.pxi":319 + * 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, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); @@ -99423,19 +139213,47 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AROONOSC, __pyx_t_2) < 0) __PYX_ERR(4, 319, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":351 + * 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_385stream_ASIN, 0, __pyx_n_s_stream_ASIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__331)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 351, __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, 351, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":378 + * 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_387stream_ATAN, 0, __pyx_n_s_stream_ATAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__332)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 378, __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, 378, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":407 + * @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, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_stream.pxi":405 + * 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, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); @@ -99448,14 +139266,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ATR, __pyx_t_2) < 0) __PYX_ERR(4, 405, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":440 + * 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_391stream_AVGPRICE, 0, __pyx_n_s_stream_AVGPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__335)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 440, __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, 440, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":478 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ AVGDEV(real[, timeperiod=?]) + * + */ __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_stream.pxi":476 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ): + */ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); @@ -99468,6 +139307,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AVGDEV, __pyx_t_2) < 0) __PYX_ERR(4, 476, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":507 + * @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, 507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 507, __pyx_L1_error) @@ -99477,6 +139323,13 @@ if (!__Pyx_RefNanny) { __pyx_t_6 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":505 + * 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, 505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_2); @@ -99498,9 +139351,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_BBANDS, __pyx_t_6) < 0) __PYX_ERR(4, 505, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":545 + * @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, 545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":543 + * 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, 543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -99513,14 +139380,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_BETA, __pyx_t_6) < 0) __PYX_ERR(4, 543, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":576 + * 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_399stream_BOP, 0, __pyx_n_s_stream_BOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__342)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 576, __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, 576, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":614 + * @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, 614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":612 + * 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, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -99533,44 +139421,107 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CCI, __pyx_t_6) < 0) __PYX_ERR(4, 612, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":647 + * 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_403stream_CDL2CROWS, 0, __pyx_n_s_stream_CDL2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__345)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 647, __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, 647, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":683 + * 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_405stream_CDL3BLACKCROWS, 0, __pyx_n_s_stream_CDL3BLACKCROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__346)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 683, __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, 683, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":719 + * 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_407stream_CDL3INSIDE, 0, __pyx_n_s_stream_CDL3INSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__347)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 719, __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, 719, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":755 + * 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_409stream_CDL3LINESTRIKE, 0, __pyx_n_s_stream_CDL3LINESTRIKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__348)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 755, __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, 755, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":791 + * 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_411stream_CDL3OUTSIDE, 0, __pyx_n_s_stream_CDL3OUTSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__349)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 791, __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, 791, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":827 + * 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_413stream_CDL3STARSINSOUTH, 0, __pyx_n_s_stream_CDL3STARSINSOUTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__350)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 827, __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, 827, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":863 + * 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_415stream_CDL3WHITESOLDIERS, 0, __pyx_n_s_stream_CDL3WHITESOLDIERS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__351)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 863, __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, 863, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":901 + * @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, 901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":899 + * 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, 899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -99583,39 +139534,95 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLABANDONEDBABY, __pyx_t_6) < 0) __PYX_ERR(4, 899, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":937 + * 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_419stream_CDLADVANCEBLOCK, 0, __pyx_n_s_stream_CDLADVANCEBLOCK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__354)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 937, __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, 937, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":973 + * 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_421stream_CDLBELTHOLD, 0, __pyx_n_s_stream_CDLBELTHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__355)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 973, __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, 973, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1009 + * 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_423stream_CDLBREAKAWAY, 0, __pyx_n_s_stream_CDLBREAKAWAY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__356)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1009, __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, 1009, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1045 + * 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_425stream_CDLCLOSINGMARUBOZU, 0, __pyx_n_s_stream_CDLCLOSINGMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__357)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1045, __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, 1045, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1081 + * 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_427stream_CDLCONCEALBABYSWALL, 0, __pyx_n_s_stream_CDLCONCEALBABYSWALL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__358)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1081, __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, 1081, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1117 + * 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_429stream_CDLCOUNTERATTACK, 0, __pyx_n_s_stream_CDLCOUNTERATTACK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__359)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1117, __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, 1117, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1155 + * @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, 1155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":1153 + * 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, 1153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -99628,29 +139635,71 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLDARKCLOUDCOVER, __pyx_t_6) < 0) __PYX_ERR(4, 1153, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1191 + * 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_433stream_CDLDOJI, 0, __pyx_n_s_stream_CDLDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__361)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1191, __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, 1191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1227 + * 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_435stream_CDLDOJISTAR, 0, __pyx_n_s_stream_CDLDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__362)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1227, __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, 1227, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1263 + * 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_437stream_CDLDRAGONFLYDOJI, 0, __pyx_n_s_stream_CDLDRAGONFLYDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__363)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1263, __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, 1263, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1299 + * 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_439stream_CDLENGULFING, 0, __pyx_n_s_stream_CDLENGULFING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__364)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1299, __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, 1299, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1337 + * @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, 1337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":1335 + * 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, 1335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -99663,9 +139712,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLEVENINGDOJISTAR, __pyx_t_6) < 0) __PYX_ERR(4, 1335, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1375 + * @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, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":1373 + * 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, 1373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -99678,109 +139741,263 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLEVENINGSTAR, __pyx_t_6) < 0) __PYX_ERR(4, 1373, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1411 + * 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_445stream_CDLGAPSIDESIDEWHITE, 0, __pyx_n_s_stream_CDLGAPSIDESIDEWHITE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__367)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1411, __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, 1411, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1447 + * 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_447stream_CDLGRAVESTONEDOJI, 0, __pyx_n_s_stream_CDLGRAVESTONEDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__368)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1447, __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, 1447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1483 + * 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_449stream_CDLHAMMER, 0, __pyx_n_s_stream_CDLHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__369)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1483, __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, 1483, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1519 + * 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_451stream_CDLHANGINGMAN, 0, __pyx_n_s_stream_CDLHANGINGMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__370)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1519, __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, 1519, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1555 + * 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_453stream_CDLHARAMI, 0, __pyx_n_s_stream_CDLHARAMI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__371)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1555, __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, 1555, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1591 + * 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_455stream_CDLHARAMICROSS, 0, __pyx_n_s_stream_CDLHARAMICROSS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__372)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1591, __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, 1591, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1627 + * 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_457stream_CDLHIGHWAVE, 0, __pyx_n_s_stream_CDLHIGHWAVE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__373)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1627, __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, 1627, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1663 + * 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_459stream_CDLHIKKAKE, 0, __pyx_n_s_stream_CDLHIKKAKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__374)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1663, __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, 1663, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1699 + * 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_461stream_CDLHIKKAKEMOD, 0, __pyx_n_s_stream_CDLHIKKAKEMOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__375)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1699, __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, 1699, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1735 + * 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_463stream_CDLHOMINGPIGEON, 0, __pyx_n_s_stream_CDLHOMINGPIGEON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__376)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1735, __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, 1735, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1771 + * 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_465stream_CDLIDENTICAL3CROWS, 0, __pyx_n_s_stream_CDLIDENTICAL3CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__377)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1771, __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, 1771, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1807 + * 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_467stream_CDLINNECK, 0, __pyx_n_s_stream_CDLINNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__378)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1807, __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, 1807, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1843 + * 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_469stream_CDLINVERTEDHAMMER, 0, __pyx_n_s_stream_CDLINVERTEDHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__379)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1843, __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, 1843, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1879 + * 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_471stream_CDLKICKING, 0, __pyx_n_s_stream_CDLKICKING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__380)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1879, __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, 1879, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1915 + * 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_473stream_CDLKICKINGBYLENGTH, 0, __pyx_n_s_stream_CDLKICKINGBYLENGTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__381)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1915, __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, 1915, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1951 + * 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_475stream_CDLLADDERBOTTOM, 0, __pyx_n_s_stream_CDLLADDERBOTTOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__382)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1951, __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, 1951, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":1987 + * 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_477stream_CDLLONGLEGGEDDOJI, 0, __pyx_n_s_stream_CDLLONGLEGGEDDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__383)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1987, __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, 1987, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2023 + * 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_479stream_CDLLONGLINE, 0, __pyx_n_s_stream_CDLLONGLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__384)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2023, __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, 2023, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2059 + * 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_481stream_CDLMARUBOZU, 0, __pyx_n_s_stream_CDLMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__385)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2059, __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, 2059, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2095 + * 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_483stream_CDLMATCHINGLOW, 0, __pyx_n_s_stream_CDLMATCHINGLOW, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__386)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2095, __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, 2095, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2133 + * @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 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":2131 + * 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, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -99793,9 +140010,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMATHOLD, __pyx_t_6) < 0) __PYX_ERR(4, 2131, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2171 + * @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 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":2169 + * 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, 2169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -99808,9 +140039,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMORNINGDOJISTAR, __pyx_t_6) < 0) __PYX_ERR(4, 2169, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2209 + * @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_t_6 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":2207 + * 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_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -99823,99 +140068,239 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMORNINGSTAR, __pyx_t_6) < 0) __PYX_ERR(4, 2207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2245 + * 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_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_491stream_CDLONNECK, 0, __pyx_n_s_stream_CDLONNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__390)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2245, __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, 2245, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2281 + * 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_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_493stream_CDLPIERCING, 0, __pyx_n_s_stream_CDLPIERCING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__391)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2281, __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, 2281, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2317 + * 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_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_495stream_CDLRICKSHAWMAN, 0, __pyx_n_s_stream_CDLRICKSHAWMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__392)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2317, __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, 2317, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2353 + * 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_497stream_CDLRISEFALL3METHODS, 0, __pyx_n_s_stream_CDLRISEFALL3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__393)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2353, __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, 2353, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2389 + * 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_499stream_CDLSEPARATINGLINES, 0, __pyx_n_s_stream_CDLSEPARATINGLINES, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__394)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2389, __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, 2389, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2425 + * 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_501stream_CDLSHOOTINGSTAR, 0, __pyx_n_s_stream_CDLSHOOTINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__395)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2425, __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, 2425, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2461 + * 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_503stream_CDLSHORTLINE, 0, __pyx_n_s_stream_CDLSHORTLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__396)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2461, __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, 2461, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2497 + * 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_505stream_CDLSPINNINGTOP, 0, __pyx_n_s_stream_CDLSPINNINGTOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__397)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2497, __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, 2497, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2533 + * 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_507stream_CDLSTALLEDPATTERN, 0, __pyx_n_s_stream_CDLSTALLEDPATTERN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__398)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2533, __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, 2533, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2569 + * 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_509stream_CDLSTICKSANDWICH, 0, __pyx_n_s_stream_CDLSTICKSANDWICH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__399)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2569, __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, 2569, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2605 + * 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_511stream_CDLTAKURI, 0, __pyx_n_s_stream_CDLTAKURI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__400)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2605, __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, 2605, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2641 + * 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_513stream_CDLTASUKIGAP, 0, __pyx_n_s_stream_CDLTASUKIGAP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__401)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2641, __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, 2641, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2677 + * 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_515stream_CDLTHRUSTING, 0, __pyx_n_s_stream_CDLTHRUSTING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__402)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2677, __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, 2677, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2713 + * 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_517stream_CDLTRISTAR, 0, __pyx_n_s_stream_CDLTRISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__403)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2713, __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, 2713, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2749 + * 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_519stream_CDLUNIQUE3RIVER, 0, __pyx_n_s_stream_CDLUNIQUE3RIVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__404)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2749, __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, 2749, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2785 + * 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_521stream_CDLUPSIDEGAP2CROWS, 0, __pyx_n_s_stream_CDLUPSIDEGAP2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__405)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2785, __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, 2785, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2821 + * 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_523stream_CDLXSIDEGAP3METHODS, 0, __pyx_n_s_stream_CDLXSIDEGAP3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__406)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2821, __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, 2821, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2857 + * 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_525stream_CEIL, 0, __pyx_n_s_stream_CEIL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__407)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2857, __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, 2857, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2886 + * @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, 2886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":2884 + * 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, 2884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -99928,9 +140313,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CMO, __pyx_t_6) < 0) __PYX_ERR(4, 2884, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2915 + * @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, 2915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":2913 + * 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, 2913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -99943,19 +140342,47 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CORREL, __pyx_t_6) < 0) __PYX_ERR(4, 2913, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2946 + * 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_531stream_COS, 0, __pyx_n_s_stream_COS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__410)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2946, __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, 2946, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":2973 + * 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_533stream_COSH, 0, __pyx_n_s_stream_COSH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__411)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2973, __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, 2973, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3002 + * @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, 3002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":3000 + * 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, 3000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -99968,14 +140395,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_DEMA, __pyx_t_6) < 0) __PYX_ERR(4, 3000, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3029 + * 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_537stream_DIV, 0, __pyx_n_s_stream_DIV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__413)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3029, __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, 3029, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3062 + * @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, 3062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":3060 + * 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, 3060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -99988,9 +140436,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_DX, __pyx_t_6) < 0) __PYX_ERR(4, 3060, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3097 + * @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, 3097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":3095 + * 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, 3095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -100003,49 +140465,119 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_EMA, __pyx_t_6) < 0) __PYX_ERR(4, 3095, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3124 + * 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_543stream_EXP, 0, __pyx_n_s_stream_EXP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__416)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3124, __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, 3124, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3151 + * 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_545stream_FLOOR, 0, __pyx_n_s_stream_FLOOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__417)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3151, __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, 3151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3178 + * 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_547stream_HT_DCPERIOD, 0, __pyx_n_s_stream_HT_DCPERIOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__418)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3178, __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, 3178, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3205 + * 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_549stream_HT_DCPHASE, 0, __pyx_n_s_stream_HT_DCPHASE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__419)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3205, __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, 3205, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3232 + * 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_551stream_HT_PHASOR, 0, __pyx_n_s_stream_HT_PHASOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__421)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3232, __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, 3232, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3262 + * 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_553stream_HT_SINE, 0, __pyx_n_s_stream_HT_SINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__423)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3262, __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, 3262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3292 + * 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_555stream_HT_TRENDLINE, 0, __pyx_n_s_stream_HT_TRENDLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__424)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3292, __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, 3292, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3319 + * 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_557stream_HT_TRENDMODE, 0, __pyx_n_s_stream_HT_TRENDMODE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__426)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3319, __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, 3319, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3348 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ IMI(open, close[, timeperiod=?]) + * + */ __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":3346 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_IMI( np.ndarray open 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, 3346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -100058,9 +140590,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_IMI, __pyx_t_6) < 0) __PYX_ERR(4, 3346, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3380 + * @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, 3380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":3378 + * return outreal + * + * @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, 3378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -100073,9 +140619,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_KAMA, __pyx_t_6) < 0) __PYX_ERR(4, 3378, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3409 + * @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, 3409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":3407 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -100088,9 +140648,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG, __pyx_t_6) < 0) __PYX_ERR(4, 3407, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3438 + * @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_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":3436 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -100103,9 +140677,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG_ANGLE, __pyx_t_6) < 0) __PYX_ERR(4, 3436, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3467 + * @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=?]) + * + */ __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":3465 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -100118,9 +140706,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG_INTERCEPT, __pyx_t_6) < 0) __PYX_ERR(4, 3465, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3496 + * @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=?]) + * + */ __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":3494 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_6); @@ -100133,21 +140735,49 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG_SLOPE, __pyx_t_6) < 0) __PYX_ERR(4, 3494, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3523 + * 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_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_571stream_LN, 0, __pyx_n_s_stream_LN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__434)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3523, __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, 3523, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3550 + * 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_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_573stream_LOG10, 0, __pyx_n_s_stream_LOG10, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__435)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3550, __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, 3550, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3579 + * @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=?]) + * + */ __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3579, __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, 3579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); + /* "talib/_stream.pxi":3577 + * 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_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 3577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_6); @@ -100163,6 +140793,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MA, __pyx_t_14) < 0) __PYX_ERR(4, 3577, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + /* "talib/_stream.pxi":3609 + * @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_14 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3609, __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, 3609, __pyx_L1_error) @@ -100170,6 +140807,13 @@ if (!__Pyx_RefNanny) { __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":3607 + * 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_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_14); @@ -100188,6 +140832,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MACD, __pyx_t_6) < 0) __PYX_ERR(4, 3607, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":3646 + * @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_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3646, __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, 3646, __pyx_L1_error) @@ -100201,6 +140852,13 @@ if (!__Pyx_RefNanny) { __pyx_t_7 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":3644 + * 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_t_4 = PyTuple_New(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); @@ -100228,9 +140886,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MACDEXT, __pyx_t_7) < 0) __PYX_ERR(4, 3644, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":3686 + * @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_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":3684 + * 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_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_7); @@ -100243,11 +140915,25 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MACDFIX, __pyx_t_7) < 0) __PYX_ERR(4, 3684, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":3721 + * @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_7 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_stream.pxi":3719 + * 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_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_7); @@ -100263,6 +140949,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAMA, __pyx_t_4) < 0) __PYX_ERR(4, 3719, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_stream.pxi":3754 + * @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_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3754, __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, 3754, __pyx_L1_error) @@ -100270,6 +140963,13 @@ if (!__Pyx_RefNanny) { __pyx_t_7 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":3752 + * 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_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_4); @@ -100288,9 +140988,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAVP, __pyx_t_7) < 0) __PYX_ERR(4, 3752, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":3789 + * @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, 3789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":3787 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100303,9 +141017,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAX, __pyx_t_7) < 0) __PYX_ERR(4, 3787, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":3818 + * @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_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":3816 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100318,14 +141046,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAXINDEX, __pyx_t_7) < 0) __PYX_ERR(4, 3816, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":3845 + * 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_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_591stream_MEDPRICE, 0, __pyx_n_s_stream_MEDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__452)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3845, __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, 3845, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":3877 + * @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=?]) + * + */ __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":3875 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100338,9 +141087,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MFI, __pyx_t_7) < 0) __PYX_ERR(4, 3875, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":3915 + * @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=?]) + * + */ __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":3913 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100353,9 +141116,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MIDPOINT, __pyx_t_7) < 0) __PYX_ERR(4, 3913, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":3944 + * @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=?]) + * + */ __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":3942 + * 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_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100368,9 +141145,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MIDPRICE, __pyx_t_7) < 0) __PYX_ERR(4, 3942, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":3976 + * @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_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":3974 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100383,9 +141174,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MIN, __pyx_t_7) < 0) __PYX_ERR(4, 3974, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":4005 + * @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_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":4003 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100398,9 +141203,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MININDEX, __pyx_t_7) < 0) __PYX_ERR(4, 4003, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":4034 + * @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=?]) + * + */ __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":4032 + * 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_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100413,9 +141232,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINMAX, __pyx_t_7) < 0) __PYX_ERR(4, 4032, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":4066 + * @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_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":4064 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100428,9 +141261,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINMAXINDEX, __pyx_t_7) < 0) __PYX_ERR(4, 4064, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":4098 + * @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_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":4096 + * 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, 4096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100443,9 +141290,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINUS_DI, __pyx_t_7) < 0) __PYX_ERR(4, 4096, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":4133 + * @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_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":4131 + * 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_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100458,9 +141319,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINUS_DM, __pyx_t_7) < 0) __PYX_ERR(4, 4131, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":4165 + * @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_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":4163 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100473,14 +141348,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MOM, __pyx_t_7) < 0) __PYX_ERR(4, 4163, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":4192 + * 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_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_613stream_MULT, 0, __pyx_n_s_stream_MULT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__466)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4192, __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, 4192, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":4225 + * @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=?]) + * + */ __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":4223 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100493,14 +141389,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_NATR, __pyx_t_7) < 0) __PYX_ERR(4, 4223, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":4258 + * 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_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_617stream_OBV, 0, __pyx_n_s_stream_OBV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__469)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4258, __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, 4258, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":4291 + * @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=?]) + * + */ __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":4289 + * 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_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100513,9 +141430,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_PLUS_DI, __pyx_t_7) < 0) __PYX_ERR(4, 4289, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":4326 + * @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=?]) + * + */ __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + /* "talib/_stream.pxi":4324 + * 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, 4324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); @@ -100528,6 +141459,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_PLUS_DM, __pyx_t_7) < 0) __PYX_ERR(4, 4324, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_stream.pxi":4358 + * @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_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4358, __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, 4358, __pyx_L1_error) @@ -100535,6 +141473,13 @@ if (!__Pyx_RefNanny) { __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_stream.pxi":4356 + * 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_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_7); @@ -100553,9 +141498,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_PPO, __pyx_t_2) < 0) __PYX_ERR(4, 4356, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":4389 + * @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_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_stream.pxi":4387 + * 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_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); @@ -100568,9 +141527,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROC, __pyx_t_2) < 0) __PYX_ERR(4, 4387, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":4418 + * @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=?]) + * + */ __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_stream.pxi":4416 + * 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_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); @@ -100583,9 +141556,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROCP, __pyx_t_2) < 0) __PYX_ERR(4, 4416, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":4447 + * @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_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_stream.pxi":4445 + * 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_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); @@ -100598,9 +141585,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROCR, __pyx_t_2) < 0) __PYX_ERR(4, 4445, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":4476 + * @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=?]) + * + */ __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_stream.pxi":4474 + * 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_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); @@ -100613,9 +141614,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROCR100, __pyx_t_2) < 0) __PYX_ERR(4, 4474, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":4505 + * @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=?]) + * + */ __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + /* "talib/_stream.pxi":4503 + * 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_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); @@ -100628,11 +141643,25 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_RSI, __pyx_t_2) < 0) __PYX_ERR(4, 4503, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_stream.pxi":4534 + * @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=?]) + * + */ __pyx_t_2 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + /* "talib/_stream.pxi":4532 + * 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_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_2); @@ -100648,6 +141677,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SAR, __pyx_t_4) < 0) __PYX_ERR(4, 4532, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_stream.pxi":4567 + * @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=?]) + * + */ __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_14 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4567, __pyx_L1_error) @@ -100665,6 +141701,13 @@ if (!__Pyx_RefNanny) { __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); + /* "talib/_stream.pxi":4565 + * 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_t_19 = PyTuple_New(8); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_4); @@ -100698,19 +141741,47 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SAREXT, __pyx_t_15) < 0) __PYX_ERR(4, 4565, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_stream.pxi":4604 + * 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_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_639stream_SIN, 0, __pyx_n_s_stream_SIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__482)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4604, __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, 4604, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_stream.pxi":4631 + * 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_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_641stream_SINH, 0, __pyx_n_s_stream_SINH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__483)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4631, __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, 4631, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_stream.pxi":4660 + * @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=?]) + * + */ __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); + /* "talib/_stream.pxi":4658 + * 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_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_15); @@ -100723,16 +141794,37 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SMA, __pyx_t_15) < 0) __PYX_ERR(4, 4658, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_stream.pxi":4687 + * 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_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_645stream_SQRT, 0, __pyx_n_s_stream_SQRT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__485)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4687, __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, 4687, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_stream.pxi":4716 + * @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=?]) + * + */ __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); + /* "talib/_stream.pxi":4714 + * 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_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_15); @@ -100748,6 +141840,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STDDEV, __pyx_t_19) < 0) __PYX_ERR(4, 4714, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + /* "talib/_stream.pxi":4746 + * @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=?]) + * + */ __pyx_t_19 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4746, __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, 4746, __pyx_L1_error) @@ -100759,6 +141858,13 @@ if (!__Pyx_RefNanny) { __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_stream.pxi":4744 + * 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, 4744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_19); @@ -100783,6 +141889,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STOCH, __pyx_t_18) < 0) __PYX_ERR(4, 4744, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_stream.pxi":4788 + * @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=?]) + * + */ __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4788, __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, 4788, __pyx_L1_error) @@ -100790,6 +141903,13 @@ if (!__Pyx_RefNanny) { __pyx_t_3 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + /* "talib/_stream.pxi":4786 + * 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_t_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_18); @@ -100808,6 +141928,13 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STOCHF, __pyx_t_3) < 0) __PYX_ERR(4, 4786, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_stream.pxi":4828 + * @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=?]) + * + */ __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4828, __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, 4828, __pyx_L1_error) @@ -100817,6 +141944,13 @@ if (!__Pyx_RefNanny) { __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_stream.pxi":4826 + * 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_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); @@ -100838,14 +141972,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STOCHRSI, __pyx_t_18) < 0) __PYX_ERR(4, 4826, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_stream.pxi":4861 + * 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_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_655stream_SUB, 0, __pyx_n_s_stream_SUB, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__494)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4861, __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, 4861, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_stream.pxi":4894 + * @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=?]) + * + */ __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_stream.pxi":4892 + * 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_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_18); @@ -100858,11 +142013,25 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SUM, __pyx_t_18) < 0) __PYX_ERR(4, 4892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_stream.pxi":4923 + * @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=?]) + * + */ __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":4921 + * 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_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_18); @@ -100878,19 +142047,47 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_T3, __pyx_t_6) < 0) __PYX_ERR(4, 4921, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":4951 + * 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_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_661stream_TAN, 0, __pyx_n_s_stream_TAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__498)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4951, __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, 4951, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":4978 + * 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_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_663stream_TANH, 0, __pyx_n_s_stream_TANH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__499)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4978, __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, 4978, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":5007 + * @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_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":5005 + * 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_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); @@ -100903,14 +142100,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TEMA, __pyx_t_6) < 0) __PYX_ERR(4, 5005, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":5034 + * 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_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_667stream_TRANGE, 0, __pyx_n_s_stream_TRANGE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__502)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5034, __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, 5034, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":5069 + * @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=?]) + * + */ __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":5067 + * 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_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); @@ -100923,9 +142141,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TRIMA, __pyx_t_6) < 0) __PYX_ERR(4, 5067, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":5098 + * @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=?]) + * + */ __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":5096 + * 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, 5096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); @@ -100938,9 +142170,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TRIX, __pyx_t_6) < 0) __PYX_ERR(4, 5096, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":5127 + * @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=?]) + * + */ __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + /* "talib/_stream.pxi":5125 + * 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_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); @@ -100953,11 +142199,25 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TSF, __pyx_t_6) < 0) __PYX_ERR(4, 5125, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":5154 + * 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_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_675stream_TYPPRICE, 0, __pyx_n_s_stream_TYPPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__506)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5154, __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, 5154, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_stream.pxi":5189 + * @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=?]) + * + */ __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5189, __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, 5189, __pyx_L1_error) @@ -100965,6 +142225,13 @@ if (!__Pyx_RefNanny) { __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 5189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_stream.pxi":5187 + * 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_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_6); @@ -100983,11 +142250,25 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ULTOSC, __pyx_t_18) < 0) __PYX_ERR(4, 5187, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_stream.pxi":5226 + * @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=?]) + * + */ __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 5226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); + /* "talib/_stream.pxi":5224 + * 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_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_18); @@ -101003,14 +142284,35 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_VAR, __pyx_t_15) < 0) __PYX_ERR(4, 5224, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_stream.pxi":5254 + * 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_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_681stream_WCLPRICE, 0, __pyx_n_s_stream_WCLPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__510)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5254, __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, 5254, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_stream.pxi":5289 + * @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=?]) + * + */ __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); + /* "talib/_stream.pxi":5287 + * 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_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_15); @@ -101023,9 +142325,23 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_WILLR, __pyx_t_15) < 0) __PYX_ERR(4, 5287, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_stream.pxi":5324 + * @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=?]) + * + */ __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); + /* "talib/_stream.pxi":5322 + * 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, 5322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_15); @@ -101038,6 +142354,11 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_WMA, __pyx_t_15) < 0) __PYX_ERR(4, 5322, __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_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) @@ -101115,6 +142436,11 @@ if (!__Pyx_RefNanny) { 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_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) @@ -102648,6 +143974,7 @@ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { } /* HasAttr */ +#if __PYX_LIMITED_VERSION_HEX < 0x030d00A1 static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { PyObject *r; if (unlikely(!__Pyx_PyBaseString_Check(n))) { @@ -102664,6 +143991,7 @@ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { return 1; } } +#endif /* DictGetItem */ #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY @@ -103737,10 +145065,10 @@ static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObje } /* TypeImport */ -#ifndef __PYX_HAVE_RT_ImportType_3_0_11 -#define __PYX_HAVE_RT_ImportType_3_0_11 -static PyTypeObject *__Pyx_ImportType_3_0_11(PyObject *module, const char *module_name, const char *class_name, - size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_11 check_size) +#ifndef __PYX_HAVE_RT_ImportType_3_0_10 +#define __PYX_HAVE_RT_ImportType_3_0_10 +static PyTypeObject *__Pyx_ImportType_3_0_10(PyObject *module, const char *module_name, const char *class_name, + size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_10 check_size) { PyObject *result = 0; char warning[200]; @@ -103794,7 +145122,7 @@ static PyTypeObject *__Pyx_ImportType_3_0_11(PyObject *module, const char *modul module_name, class_name, size, basicsize+itemsize); goto bad; } - if (check_size == __Pyx_ImportType_CheckSize_Error_3_0_11 && + if (check_size == __Pyx_ImportType_CheckSize_Error_3_0_10 && ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " @@ -103802,7 +145130,7 @@ static PyTypeObject *__Pyx_ImportType_3_0_11(PyObject *module, const char *modul module_name, class_name, size, basicsize, basicsize+itemsize); goto bad; } - else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_0_11 && (size_t)basicsize > size) { + else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_0_10 && (size_t)basicsize > size) { PyOS_snprintf(warning, sizeof(warning), "%s.%s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", @@ -105010,9 +146338,6 @@ static PyTypeObject __pyx_CyFunctionType_type = { #if PY_VERSION_HEX >= 0x030C0000 0, #endif -#if PY_VERSION_HEX >= 0x030d00A4 - 0, -#endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, #endif @@ -106511,239 +147836,245 @@ static CYTHON_INLINE TA_RetCode __Pyx_PyInt_As_TA_RetCode(PyObject *x) { } return (TA_RetCode) val; } - } + } else #endif - if (unlikely(!PyLong_Check(x))) { - TA_RetCode val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (TA_RetCode) -1; - val = __Pyx_PyInt_As_TA_RetCode(tmp); - Py_DECREF(tmp); - return val; - } - if (is_unsigned) { + if (likely(PyLong_Check(x))) { + if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS - if (unlikely(__Pyx_PyLong_IsNeg(x))) { - goto raise_neg_overflow; - } else if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(TA_RetCode, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_DigitCount(x)) { - case 2: - if ((8 * sizeof(TA_RetCode) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RetCode) >= 2 * PyLong_SHIFT)) { - return (TA_RetCode) (((((TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0])); + if (unlikely(__Pyx_PyLong_IsNeg(x))) { + goto raise_neg_overflow; + } else if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(TA_RetCode, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_DigitCount(x)) { + case 2: + if ((8 * sizeof(TA_RetCode) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RetCode) >= 2 * PyLong_SHIFT)) { + return (TA_RetCode) (((((TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0])); + } } - } - break; - case 3: - if ((8 * sizeof(TA_RetCode) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RetCode) >= 3 * PyLong_SHIFT)) { - return (TA_RetCode) (((((((TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0])); + break; + case 3: + if ((8 * sizeof(TA_RetCode) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RetCode) >= 3 * PyLong_SHIFT)) { + return (TA_RetCode) (((((((TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0])); + } } - } - break; - case 4: - if ((8 * sizeof(TA_RetCode) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RetCode) >= 4 * PyLong_SHIFT)) { - return (TA_RetCode) (((((((((TA_RetCode)digits[3]) << PyLong_SHIFT) | (TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0])); + break; + case 4: + if ((8 * sizeof(TA_RetCode) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RetCode) >= 4 * PyLong_SHIFT)) { + return (TA_RetCode) (((((((((TA_RetCode)digits[3]) << PyLong_SHIFT) | (TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0])); + } } - } - break; + break; + } } - } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (TA_RetCode) -1; - if (unlikely(result == 1)) + if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; - } + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TA_RetCode) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } #endif - if ((sizeof(TA_RetCode) <= sizeof(unsigned long))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_RetCode, unsigned long, PyLong_AsUnsignedLong(x)) + if ((sizeof(TA_RetCode) <= sizeof(unsigned long))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_RetCode, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(TA_RetCode) <= sizeof(unsigned PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_RetCode, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) + } else if ((sizeof(TA_RetCode) <= sizeof(unsigned PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_RetCode, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(TA_RetCode, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_SignedDigitCount(x)) { - case -2: - if ((8 * sizeof(TA_RetCode) - 1 > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RetCode, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RetCode) - 1 > 2 * PyLong_SHIFT)) { - return (TA_RetCode) (((TA_RetCode)-1)*(((((TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]))); +#if CYTHON_USE_PYLONG_INTERNALS + if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(TA_RetCode, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_SignedDigitCount(x)) { + case -2: + if ((8 * sizeof(TA_RetCode) - 1 > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RetCode, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RetCode) - 1 > 2 * PyLong_SHIFT)) { + return (TA_RetCode) (((TA_RetCode)-1)*(((((TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]))); + } } - } - break; - case 2: - if ((8 * sizeof(TA_RetCode) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RetCode) - 1 > 2 * PyLong_SHIFT)) { - return (TA_RetCode) ((((((TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]))); + break; + case 2: + if ((8 * sizeof(TA_RetCode) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RetCode) - 1 > 2 * PyLong_SHIFT)) { + return (TA_RetCode) ((((((TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]))); + } } - } - break; - case -3: - if ((8 * sizeof(TA_RetCode) - 1 > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RetCode, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RetCode) - 1 > 3 * PyLong_SHIFT)) { - return (TA_RetCode) (((TA_RetCode)-1)*(((((((TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]))); + break; + case -3: + if ((8 * sizeof(TA_RetCode) - 1 > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RetCode, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RetCode) - 1 > 3 * PyLong_SHIFT)) { + return (TA_RetCode) (((TA_RetCode)-1)*(((((((TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]))); + } } - } - break; - case 3: - if ((8 * sizeof(TA_RetCode) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RetCode) - 1 > 3 * PyLong_SHIFT)) { - return (TA_RetCode) ((((((((TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]))); + break; + case 3: + if ((8 * sizeof(TA_RetCode) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RetCode) - 1 > 3 * PyLong_SHIFT)) { + return (TA_RetCode) ((((((((TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]))); + } } - } - break; - case -4: - if ((8 * sizeof(TA_RetCode) - 1 > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RetCode, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RetCode) - 1 > 4 * PyLong_SHIFT)) { - return (TA_RetCode) (((TA_RetCode)-1)*(((((((((TA_RetCode)digits[3]) << PyLong_SHIFT) | (TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]))); + break; + case -4: + if ((8 * sizeof(TA_RetCode) - 1 > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RetCode, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RetCode) - 1 > 4 * PyLong_SHIFT)) { + return (TA_RetCode) (((TA_RetCode)-1)*(((((((((TA_RetCode)digits[3]) << PyLong_SHIFT) | (TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]))); + } } - } - break; - case 4: - if ((8 * sizeof(TA_RetCode) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RetCode) - 1 > 4 * PyLong_SHIFT)) { - return (TA_RetCode) ((((((((((TA_RetCode)digits[3]) << PyLong_SHIFT) | (TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]))); + break; + case 4: + if ((8 * sizeof(TA_RetCode) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RetCode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RetCode) - 1 > 4 * PyLong_SHIFT)) { + return (TA_RetCode) ((((((((((TA_RetCode)digits[3]) << PyLong_SHIFT) | (TA_RetCode)digits[2]) << PyLong_SHIFT) | (TA_RetCode)digits[1]) << PyLong_SHIFT) | (TA_RetCode)digits[0]))); + } } - } - break; + break; + } } - } #endif - if ((sizeof(TA_RetCode) <= sizeof(long))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_RetCode, long, PyLong_AsLong(x)) + if ((sizeof(TA_RetCode) <= sizeof(long))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_RetCode, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(TA_RetCode) <= sizeof(PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_RetCode, PY_LONG_LONG, PyLong_AsLongLong(x)) + } else if ((sizeof(TA_RetCode) <= sizeof(PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_RetCode, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif - } - } - { - TA_RetCode val; - int ret = -1; -#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API - Py_ssize_t bytes_copied = PyLong_AsNativeBytes( - x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); - if (unlikely(bytes_copied == -1)) { - } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { - goto raise_overflow; - } else { - ret = 0; - } -#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - ret = _PyLong_AsByteArray((PyLongObject *)x, - bytes, sizeof(val), - is_little, !is_unsigned); -#else - PyObject *v; - PyObject *stepval = NULL, *mask = NULL, *shift = NULL; - int bits, remaining_bits, is_negative = 0; - int chunk_size = (sizeof(long) < 8) ? 30 : 62; - if (likely(PyLong_CheckExact(x))) { - v = __Pyx_NewRef(x); - } else { - v = PyNumber_Long(x); - if (unlikely(!v)) return (TA_RetCode) -1; - assert(PyLong_CheckExact(v)); + } } { - int result = PyObject_RichCompareBool(v, Py_False, Py_LT); - if (unlikely(result < 0)) { + TA_RetCode val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); +#if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } +#endif + if (likely(v)) { + int ret = -1; +#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); +#else + PyObject *stepval = NULL, *mask = NULL, *shift = NULL; + int bits, remaining_bits, is_negative = 0; + long idigit; + int chunk_size = (sizeof(long) < 8) ? 30 : 62; + if (unlikely(!PyLong_CheckExact(v))) { + PyObject *tmp = v; + v = PyNumber_Long(v); + assert(PyLong_CheckExact(v)); + Py_DECREF(tmp); + if (unlikely(!v)) return (TA_RetCode) -1; + } +#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(x) == 0) + return (TA_RetCode) 0; + is_negative = Py_SIZE(x) < 0; +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TA_RetCode) -1; + is_negative = result == 1; + } +#endif + if (is_unsigned && unlikely(is_negative)) { + goto raise_neg_overflow; + } else if (is_negative) { + stepval = PyNumber_Invert(v); + if (unlikely(!stepval)) + return (TA_RetCode) -1; + } else { + stepval = __Pyx_NewRef(v); + } + val = (TA_RetCode) 0; + mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; + shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; + for (bits = 0; bits < (int) sizeof(TA_RetCode) * 8 - chunk_size; bits += chunk_size) { + PyObject *tmp, *digit; + digit = PyNumber_And(stepval, mask); + if (unlikely(!digit)) goto done; + idigit = PyLong_AsLong(digit); + Py_DECREF(digit); + if (unlikely(idigit < 0)) goto done; + tmp = PyNumber_Rshift(stepval, shift); + if (unlikely(!tmp)) goto done; + Py_DECREF(stepval); stepval = tmp; + val |= ((TA_RetCode) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(stepval) == 0) + goto unpacking_done; + #endif + } + idigit = PyLong_AsLong(stepval); + if (unlikely(idigit < 0)) goto done; + remaining_bits = ((int) sizeof(TA_RetCode) * 8) - bits - (is_unsigned ? 0 : 1); + if (unlikely(idigit >= (1L << remaining_bits))) + goto raise_overflow; + val |= ((TA_RetCode) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + unpacking_done: + #endif + if (!is_unsigned) { + if (unlikely(val & (((TA_RetCode) 1) << (sizeof(TA_RetCode) * 8 - 1)))) + goto raise_overflow; + if (is_negative) + val = ~val; + } + ret = 0; + done: + Py_XDECREF(shift); + Py_XDECREF(mask); + Py_XDECREF(stepval); +#endif Py_DECREF(v); - return (TA_RetCode) -1; + if (likely(!ret)) + return val; } - is_negative = result == 1; - } - if (is_unsigned && unlikely(is_negative)) { - Py_DECREF(v); - goto raise_neg_overflow; - } else if (is_negative) { - stepval = PyNumber_Invert(v); - Py_DECREF(v); - if (unlikely(!stepval)) - return (TA_RetCode) -1; - } else { - stepval = v; - } - v = NULL; - val = (TA_RetCode) 0; - mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; - shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; - for (bits = 0; bits < (int) sizeof(TA_RetCode) * 8 - chunk_size; bits += chunk_size) { - PyObject *tmp, *digit; - long idigit; - digit = PyNumber_And(stepval, mask); - if (unlikely(!digit)) goto done; - idigit = PyLong_AsLong(digit); - Py_DECREF(digit); - if (unlikely(idigit < 0)) goto done; - val |= ((TA_RetCode) idigit) << bits; - tmp = PyNumber_Rshift(stepval, shift); - if (unlikely(!tmp)) goto done; - Py_DECREF(stepval); stepval = tmp; - } - Py_DECREF(shift); shift = NULL; - Py_DECREF(mask); mask = NULL; - { - long idigit = PyLong_AsLong(stepval); - if (unlikely(idigit < 0)) goto done; - remaining_bits = ((int) sizeof(TA_RetCode) * 8) - bits - (is_unsigned ? 0 : 1); - if (unlikely(idigit >= (1L << remaining_bits))) - goto raise_overflow; - val |= ((TA_RetCode) idigit) << bits; - } - if (!is_unsigned) { - if (unlikely(val & (((TA_RetCode) 1) << (sizeof(TA_RetCode) * 8 - 1)))) - goto raise_overflow; - if (is_negative) - val = ~val; - } - ret = 0; - done: - Py_XDECREF(shift); - Py_XDECREF(mask); - Py_XDECREF(stepval); -#endif - if (unlikely(ret)) return (TA_RetCode) -1; + } + } else { + TA_RetCode val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (TA_RetCode) -1; + val = __Pyx_PyInt_As_TA_RetCode(tmp); + Py_DECREF(tmp); return val; } raise_overflow: @@ -106778,239 +148109,245 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { } return (int) val; } - } + } else #endif - if (unlikely(!PyLong_Check(x))) { - int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (int) -1; - val = __Pyx_PyInt_As_int(tmp); - Py_DECREF(tmp); - return val; - } - if (is_unsigned) { + if (likely(PyLong_Check(x))) { + if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS - if (unlikely(__Pyx_PyLong_IsNeg(x))) { - goto raise_neg_overflow; - } else if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_DigitCount(x)) { - case 2: - if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) { - return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + if (unlikely(__Pyx_PyLong_IsNeg(x))) { + goto raise_neg_overflow; + } else if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_DigitCount(x)) { + case 2: + if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) { + return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } } - } - break; - case 3: - if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) { - return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + break; + case 3: + if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) { + return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } } - } - break; - case 4: - if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) { - return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + break; + case 4: + if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) { + return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } } - } - break; + break; + } } - } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (int) -1; - if (unlikely(result == 1)) + if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; - } + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (int) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } #endif - if ((sizeof(int) <= sizeof(unsigned long))) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) + if ((sizeof(int) <= sizeof(unsigned long))) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) + } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_SignedDigitCount(x)) { - case -2: - if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { - return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); +#if CYTHON_USE_PYLONG_INTERNALS + if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_SignedDigitCount(x)) { + case -2: + if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { + return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } } - } - break; - case 2: - if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { - return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + break; + case 2: + if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { + return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } } - } - break; - case -3: - if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { - return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + break; + case -3: + if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { + return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } } - } - break; - case 3: - if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { - return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + break; + case 3: + if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { + return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } } - } - break; - case -4: - if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) { - return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + break; + case -4: + if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) { + return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } } - } - break; - case 4: - if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) { - return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + break; + case 4: + if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) { + return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } } - } - break; + break; + } } - } #endif - if ((sizeof(int) <= sizeof(long))) { - __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) + if ((sizeof(int) <= sizeof(long))) { + __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) + } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif - } - } - { - int val; - int ret = -1; -#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API - Py_ssize_t bytes_copied = PyLong_AsNativeBytes( - x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); - if (unlikely(bytes_copied == -1)) { - } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { - goto raise_overflow; - } else { - ret = 0; - } -#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - ret = _PyLong_AsByteArray((PyLongObject *)x, - bytes, sizeof(val), - is_little, !is_unsigned); -#else - PyObject *v; - PyObject *stepval = NULL, *mask = NULL, *shift = NULL; - int bits, remaining_bits, is_negative = 0; - int chunk_size = (sizeof(long) < 8) ? 30 : 62; - if (likely(PyLong_CheckExact(x))) { - v = __Pyx_NewRef(x); - } else { - v = PyNumber_Long(x); - if (unlikely(!v)) return (int) -1; - assert(PyLong_CheckExact(v)); + } } { - int result = PyObject_RichCompareBool(v, Py_False, Py_LT); - if (unlikely(result < 0)) { + int val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); +#if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } +#endif + if (likely(v)) { + int ret = -1; +#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); +#else + PyObject *stepval = NULL, *mask = NULL, *shift = NULL; + int bits, remaining_bits, is_negative = 0; + long idigit; + int chunk_size = (sizeof(long) < 8) ? 30 : 62; + if (unlikely(!PyLong_CheckExact(v))) { + PyObject *tmp = v; + v = PyNumber_Long(v); + assert(PyLong_CheckExact(v)); + Py_DECREF(tmp); + if (unlikely(!v)) return (int) -1; + } +#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(x) == 0) + return (int) 0; + is_negative = Py_SIZE(x) < 0; +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (int) -1; + is_negative = result == 1; + } +#endif + if (is_unsigned && unlikely(is_negative)) { + goto raise_neg_overflow; + } else if (is_negative) { + stepval = PyNumber_Invert(v); + if (unlikely(!stepval)) + return (int) -1; + } else { + stepval = __Pyx_NewRef(v); + } + val = (int) 0; + mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; + shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; + for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) { + PyObject *tmp, *digit; + digit = PyNumber_And(stepval, mask); + if (unlikely(!digit)) goto done; + idigit = PyLong_AsLong(digit); + Py_DECREF(digit); + if (unlikely(idigit < 0)) goto done; + tmp = PyNumber_Rshift(stepval, shift); + if (unlikely(!tmp)) goto done; + Py_DECREF(stepval); stepval = tmp; + val |= ((int) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(stepval) == 0) + goto unpacking_done; + #endif + } + idigit = PyLong_AsLong(stepval); + if (unlikely(idigit < 0)) goto done; + remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1); + if (unlikely(idigit >= (1L << remaining_bits))) + goto raise_overflow; + val |= ((int) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + unpacking_done: + #endif + if (!is_unsigned) { + if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1)))) + goto raise_overflow; + if (is_negative) + val = ~val; + } + ret = 0; + done: + Py_XDECREF(shift); + Py_XDECREF(mask); + Py_XDECREF(stepval); +#endif Py_DECREF(v); - return (int) -1; + if (likely(!ret)) + return val; } - is_negative = result == 1; - } - if (is_unsigned && unlikely(is_negative)) { - Py_DECREF(v); - goto raise_neg_overflow; - } else if (is_negative) { - stepval = PyNumber_Invert(v); - Py_DECREF(v); - if (unlikely(!stepval)) - return (int) -1; - } else { - stepval = v; - } - v = NULL; - val = (int) 0; - mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; - shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; - for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) { - PyObject *tmp, *digit; - long idigit; - digit = PyNumber_And(stepval, mask); - if (unlikely(!digit)) goto done; - idigit = PyLong_AsLong(digit); - Py_DECREF(digit); - if (unlikely(idigit < 0)) goto done; - val |= ((int) idigit) << bits; - tmp = PyNumber_Rshift(stepval, shift); - if (unlikely(!tmp)) goto done; - Py_DECREF(stepval); stepval = tmp; - } - Py_DECREF(shift); shift = NULL; - Py_DECREF(mask); mask = NULL; - { - long idigit = PyLong_AsLong(stepval); - if (unlikely(idigit < 0)) goto done; - remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1); - if (unlikely(idigit >= (1L << remaining_bits))) - goto raise_overflow; - val |= ((int) idigit) << bits; - } - if (!is_unsigned) { - if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1)))) - goto raise_overflow; - if (is_negative) - val = ~val; - } - ret = 0; - done: - Py_XDECREF(shift); - Py_XDECREF(mask); - Py_XDECREF(stepval); -#endif - if (unlikely(ret)) return (int) -1; + } + } else { + int val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (int) -1; + val = __Pyx_PyInt_As_int(tmp); + Py_DECREF(tmp); return val; } raise_overflow: @@ -107054,19 +148391,12 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { } } { - unsigned char *bytes = (unsigned char *)&value; -#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 - if (is_unsigned) { - return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); - } else { - return PyLong_FromNativeBytes(bytes, sizeof(value), -1); - } -#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; +#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 return _PyLong_FromByteArray(bytes, sizeof(int), little, !is_unsigned); #else - int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL; PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); @@ -107125,19 +148455,12 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_RetCode(TA_RetCode value) { } } { - unsigned char *bytes = (unsigned char *)&value; -#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 - if (is_unsigned) { - return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); - } else { - return PyLong_FromNativeBytes(bytes, sizeof(value), -1); - } -#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; +#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 return _PyLong_FromByteArray(bytes, sizeof(TA_RetCode), little, !is_unsigned); #else - int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL; PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); @@ -107187,239 +148510,245 @@ static CYTHON_INLINE TA_FuncUnstId __Pyx_PyInt_As_TA_FuncUnstId(PyObject *x) { } return (TA_FuncUnstId) val; } - } + } else #endif - if (unlikely(!PyLong_Check(x))) { - TA_FuncUnstId val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (TA_FuncUnstId) -1; - val = __Pyx_PyInt_As_TA_FuncUnstId(tmp); - Py_DECREF(tmp); - return val; - } - if (is_unsigned) { + if (likely(PyLong_Check(x))) { + if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS - if (unlikely(__Pyx_PyLong_IsNeg(x))) { - goto raise_neg_overflow; - } else if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_DigitCount(x)) { - case 2: - if ((8 * sizeof(TA_FuncUnstId) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_FuncUnstId) >= 2 * PyLong_SHIFT)) { - return (TA_FuncUnstId) (((((TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0])); + if (unlikely(__Pyx_PyLong_IsNeg(x))) { + goto raise_neg_overflow; + } else if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_DigitCount(x)) { + case 2: + if ((8 * sizeof(TA_FuncUnstId) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_FuncUnstId) >= 2 * PyLong_SHIFT)) { + return (TA_FuncUnstId) (((((TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0])); + } } - } - break; - case 3: - if ((8 * sizeof(TA_FuncUnstId) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_FuncUnstId) >= 3 * PyLong_SHIFT)) { - return (TA_FuncUnstId) (((((((TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0])); + break; + case 3: + if ((8 * sizeof(TA_FuncUnstId) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_FuncUnstId) >= 3 * PyLong_SHIFT)) { + return (TA_FuncUnstId) (((((((TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0])); + } } - } - break; - case 4: - if ((8 * sizeof(TA_FuncUnstId) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_FuncUnstId) >= 4 * PyLong_SHIFT)) { - return (TA_FuncUnstId) (((((((((TA_FuncUnstId)digits[3]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0])); + break; + case 4: + if ((8 * sizeof(TA_FuncUnstId) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_FuncUnstId) >= 4 * PyLong_SHIFT)) { + return (TA_FuncUnstId) (((((((((TA_FuncUnstId)digits[3]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0])); + } } - } - break; + break; + } } - } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (TA_FuncUnstId) -1; - if (unlikely(result == 1)) + if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; - } + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TA_FuncUnstId) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } #endif - if ((sizeof(TA_FuncUnstId) <= sizeof(unsigned long))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_FuncUnstId, unsigned long, PyLong_AsUnsignedLong(x)) + if ((sizeof(TA_FuncUnstId) <= sizeof(unsigned long))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_FuncUnstId, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(TA_FuncUnstId) <= sizeof(unsigned PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_FuncUnstId, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) + } else if ((sizeof(TA_FuncUnstId) <= sizeof(unsigned PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_FuncUnstId, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_SignedDigitCount(x)) { - case -2: - if ((8 * sizeof(TA_FuncUnstId) - 1 > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 2 * PyLong_SHIFT)) { - return (TA_FuncUnstId) (((TA_FuncUnstId)-1)*(((((TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]))); +#if CYTHON_USE_PYLONG_INTERNALS + if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_SignedDigitCount(x)) { + case -2: + if ((8 * sizeof(TA_FuncUnstId) - 1 > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 2 * PyLong_SHIFT)) { + return (TA_FuncUnstId) (((TA_FuncUnstId)-1)*(((((TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]))); + } } - } - break; - case 2: - if ((8 * sizeof(TA_FuncUnstId) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 2 * PyLong_SHIFT)) { - return (TA_FuncUnstId) ((((((TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]))); + break; + case 2: + if ((8 * sizeof(TA_FuncUnstId) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 2 * PyLong_SHIFT)) { + return (TA_FuncUnstId) ((((((TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]))); + } } - } - break; - case -3: - if ((8 * sizeof(TA_FuncUnstId) - 1 > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 3 * PyLong_SHIFT)) { - return (TA_FuncUnstId) (((TA_FuncUnstId)-1)*(((((((TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]))); + break; + case -3: + if ((8 * sizeof(TA_FuncUnstId) - 1 > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 3 * PyLong_SHIFT)) { + return (TA_FuncUnstId) (((TA_FuncUnstId)-1)*(((((((TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]))); + } } - } - break; - case 3: - if ((8 * sizeof(TA_FuncUnstId) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 3 * PyLong_SHIFT)) { - return (TA_FuncUnstId) ((((((((TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]))); + break; + case 3: + if ((8 * sizeof(TA_FuncUnstId) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 3 * PyLong_SHIFT)) { + return (TA_FuncUnstId) ((((((((TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]))); + } } - } - break; - case -4: - if ((8 * sizeof(TA_FuncUnstId) - 1 > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 4 * PyLong_SHIFT)) { - return (TA_FuncUnstId) (((TA_FuncUnstId)-1)*(((((((((TA_FuncUnstId)digits[3]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]))); + break; + case -4: + if ((8 * sizeof(TA_FuncUnstId) - 1 > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 4 * PyLong_SHIFT)) { + return (TA_FuncUnstId) (((TA_FuncUnstId)-1)*(((((((((TA_FuncUnstId)digits[3]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]))); + } } - } - break; - case 4: - if ((8 * sizeof(TA_FuncUnstId) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 4 * PyLong_SHIFT)) { - return (TA_FuncUnstId) ((((((((((TA_FuncUnstId)digits[3]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]))); + break; + case 4: + if ((8 * sizeof(TA_FuncUnstId) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_FuncUnstId) - 1 > 4 * PyLong_SHIFT)) { + return (TA_FuncUnstId) ((((((((((TA_FuncUnstId)digits[3]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[2]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[1]) << PyLong_SHIFT) | (TA_FuncUnstId)digits[0]))); + } } - } - break; + break; + } } - } #endif - if ((sizeof(TA_FuncUnstId) <= sizeof(long))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_FuncUnstId, long, PyLong_AsLong(x)) + if ((sizeof(TA_FuncUnstId) <= sizeof(long))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_FuncUnstId, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(TA_FuncUnstId) <= sizeof(PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_FuncUnstId, PY_LONG_LONG, PyLong_AsLongLong(x)) + } else if ((sizeof(TA_FuncUnstId) <= sizeof(PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_FuncUnstId, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif - } - } - { - TA_FuncUnstId val; - int ret = -1; -#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API - Py_ssize_t bytes_copied = PyLong_AsNativeBytes( - x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); - if (unlikely(bytes_copied == -1)) { - } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { - goto raise_overflow; - } else { - ret = 0; - } -#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - ret = _PyLong_AsByteArray((PyLongObject *)x, - bytes, sizeof(val), - is_little, !is_unsigned); -#else - PyObject *v; - PyObject *stepval = NULL, *mask = NULL, *shift = NULL; - int bits, remaining_bits, is_negative = 0; - int chunk_size = (sizeof(long) < 8) ? 30 : 62; - if (likely(PyLong_CheckExact(x))) { - v = __Pyx_NewRef(x); - } else { - v = PyNumber_Long(x); - if (unlikely(!v)) return (TA_FuncUnstId) -1; - assert(PyLong_CheckExact(v)); + } } { - int result = PyObject_RichCompareBool(v, Py_False, Py_LT); - if (unlikely(result < 0)) { + TA_FuncUnstId val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); +#if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } +#endif + if (likely(v)) { + int ret = -1; +#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); +#else + PyObject *stepval = NULL, *mask = NULL, *shift = NULL; + int bits, remaining_bits, is_negative = 0; + long idigit; + int chunk_size = (sizeof(long) < 8) ? 30 : 62; + if (unlikely(!PyLong_CheckExact(v))) { + PyObject *tmp = v; + v = PyNumber_Long(v); + assert(PyLong_CheckExact(v)); + Py_DECREF(tmp); + if (unlikely(!v)) return (TA_FuncUnstId) -1; + } +#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(x) == 0) + return (TA_FuncUnstId) 0; + is_negative = Py_SIZE(x) < 0; +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TA_FuncUnstId) -1; + is_negative = result == 1; + } +#endif + if (is_unsigned && unlikely(is_negative)) { + goto raise_neg_overflow; + } else if (is_negative) { + stepval = PyNumber_Invert(v); + if (unlikely(!stepval)) + return (TA_FuncUnstId) -1; + } else { + stepval = __Pyx_NewRef(v); + } + val = (TA_FuncUnstId) 0; + mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; + shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; + for (bits = 0; bits < (int) sizeof(TA_FuncUnstId) * 8 - chunk_size; bits += chunk_size) { + PyObject *tmp, *digit; + digit = PyNumber_And(stepval, mask); + if (unlikely(!digit)) goto done; + idigit = PyLong_AsLong(digit); + Py_DECREF(digit); + if (unlikely(idigit < 0)) goto done; + tmp = PyNumber_Rshift(stepval, shift); + if (unlikely(!tmp)) goto done; + Py_DECREF(stepval); stepval = tmp; + val |= ((TA_FuncUnstId) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(stepval) == 0) + goto unpacking_done; + #endif + } + idigit = PyLong_AsLong(stepval); + if (unlikely(idigit < 0)) goto done; + remaining_bits = ((int) sizeof(TA_FuncUnstId) * 8) - bits - (is_unsigned ? 0 : 1); + if (unlikely(idigit >= (1L << remaining_bits))) + goto raise_overflow; + val |= ((TA_FuncUnstId) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + unpacking_done: + #endif + if (!is_unsigned) { + if (unlikely(val & (((TA_FuncUnstId) 1) << (sizeof(TA_FuncUnstId) * 8 - 1)))) + goto raise_overflow; + if (is_negative) + val = ~val; + } + ret = 0; + done: + Py_XDECREF(shift); + Py_XDECREF(mask); + Py_XDECREF(stepval); +#endif Py_DECREF(v); - return (TA_FuncUnstId) -1; + if (likely(!ret)) + return val; } - is_negative = result == 1; - } - if (is_unsigned && unlikely(is_negative)) { - Py_DECREF(v); - goto raise_neg_overflow; - } else if (is_negative) { - stepval = PyNumber_Invert(v); - Py_DECREF(v); - if (unlikely(!stepval)) - return (TA_FuncUnstId) -1; - } else { - stepval = v; - } - v = NULL; - val = (TA_FuncUnstId) 0; - mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; - shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; - for (bits = 0; bits < (int) sizeof(TA_FuncUnstId) * 8 - chunk_size; bits += chunk_size) { - PyObject *tmp, *digit; - long idigit; - digit = PyNumber_And(stepval, mask); - if (unlikely(!digit)) goto done; - idigit = PyLong_AsLong(digit); - Py_DECREF(digit); - if (unlikely(idigit < 0)) goto done; - val |= ((TA_FuncUnstId) idigit) << bits; - tmp = PyNumber_Rshift(stepval, shift); - if (unlikely(!tmp)) goto done; - Py_DECREF(stepval); stepval = tmp; - } - Py_DECREF(shift); shift = NULL; - Py_DECREF(mask); mask = NULL; - { - long idigit = PyLong_AsLong(stepval); - if (unlikely(idigit < 0)) goto done; - remaining_bits = ((int) sizeof(TA_FuncUnstId) * 8) - bits - (is_unsigned ? 0 : 1); - if (unlikely(idigit >= (1L << remaining_bits))) - goto raise_overflow; - val |= ((TA_FuncUnstId) idigit) << bits; - } - if (!is_unsigned) { - if (unlikely(val & (((TA_FuncUnstId) 1) << (sizeof(TA_FuncUnstId) * 8 - 1)))) - goto raise_overflow; - if (is_negative) - val = ~val; - } - ret = 0; - done: - Py_XDECREF(shift); - Py_XDECREF(mask); - Py_XDECREF(stepval); -#endif - if (unlikely(ret)) return (TA_FuncUnstId) -1; + } + } else { + TA_FuncUnstId val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (TA_FuncUnstId) -1; + val = __Pyx_PyInt_As_TA_FuncUnstId(tmp); + Py_DECREF(tmp); return val; } raise_overflow: @@ -107454,239 +148783,245 @@ static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) { } return (unsigned int) val; } - } + } else #endif - if (unlikely(!PyLong_Check(x))) { - unsigned int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (unsigned int) -1; - val = __Pyx_PyInt_As_unsigned_int(tmp); - Py_DECREF(tmp); - return val; - } - if (is_unsigned) { + if (likely(PyLong_Check(x))) { + if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS - if (unlikely(__Pyx_PyLong_IsNeg(x))) { - goto raise_neg_overflow; - } else if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_DigitCount(x)) { - case 2: - if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT)) { - return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); + if (unlikely(__Pyx_PyLong_IsNeg(x))) { + goto raise_neg_overflow; + } else if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_DigitCount(x)) { + case 2: + if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT)) { + return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); + } } - } - break; - case 3: - if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT)) { - return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); + break; + case 3: + if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT)) { + return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); + } } - } - break; - case 4: - if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT)) { - return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); + break; + case 4: + if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT)) { + return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); + } } - } - break; + break; + } } - } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (unsigned int) -1; - if (unlikely(result == 1)) + if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; - } + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (unsigned int) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } #endif - if ((sizeof(unsigned int) <= sizeof(unsigned long))) { - __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x)) + if ((sizeof(unsigned int) <= sizeof(unsigned long))) { + __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) + } else if ((sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_SignedDigitCount(x)) { - case -2: - if ((8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) { - return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); +#if CYTHON_USE_PYLONG_INTERNALS + if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_SignedDigitCount(x)) { + case -2: + if ((8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) { + return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); + } } - } - break; - case 2: - if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) { - return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); + break; + case 2: + if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) { + return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); + } } - } - break; - case -3: - if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) { - return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); + break; + case -3: + if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) { + return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); + } } - } - break; - case 3: - if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) { - return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); + break; + case 3: + if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) { + return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); + } } - } - break; - case -4: - if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) { - return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); + break; + case -4: + if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) { + return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); + } } - } - break; - case 4: - if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) { - return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); + break; + case 4: + if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) { + return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); + } } - } - break; + break; + } } - } #endif - if ((sizeof(unsigned int) <= sizeof(long))) { - __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x)) + if ((sizeof(unsigned int) <= sizeof(long))) { + __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(unsigned int) <= sizeof(PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x)) + } else if ((sizeof(unsigned int) <= sizeof(PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif - } - } - { - unsigned int val; - int ret = -1; -#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API - Py_ssize_t bytes_copied = PyLong_AsNativeBytes( - x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); - if (unlikely(bytes_copied == -1)) { - } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { - goto raise_overflow; - } else { - ret = 0; - } -#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - ret = _PyLong_AsByteArray((PyLongObject *)x, - bytes, sizeof(val), - is_little, !is_unsigned); -#else - PyObject *v; - PyObject *stepval = NULL, *mask = NULL, *shift = NULL; - int bits, remaining_bits, is_negative = 0; - int chunk_size = (sizeof(long) < 8) ? 30 : 62; - if (likely(PyLong_CheckExact(x))) { - v = __Pyx_NewRef(x); - } else { - v = PyNumber_Long(x); - if (unlikely(!v)) return (unsigned int) -1; - assert(PyLong_CheckExact(v)); + } } { - int result = PyObject_RichCompareBool(v, Py_False, Py_LT); - if (unlikely(result < 0)) { + unsigned int val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); +#if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } +#endif + if (likely(v)) { + int ret = -1; +#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); +#else + PyObject *stepval = NULL, *mask = NULL, *shift = NULL; + int bits, remaining_bits, is_negative = 0; + long idigit; + int chunk_size = (sizeof(long) < 8) ? 30 : 62; + if (unlikely(!PyLong_CheckExact(v))) { + PyObject *tmp = v; + v = PyNumber_Long(v); + assert(PyLong_CheckExact(v)); + Py_DECREF(tmp); + if (unlikely(!v)) return (unsigned int) -1; + } +#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(x) == 0) + return (unsigned int) 0; + is_negative = Py_SIZE(x) < 0; +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (unsigned int) -1; + is_negative = result == 1; + } +#endif + if (is_unsigned && unlikely(is_negative)) { + goto raise_neg_overflow; + } else if (is_negative) { + stepval = PyNumber_Invert(v); + if (unlikely(!stepval)) + return (unsigned int) -1; + } else { + stepval = __Pyx_NewRef(v); + } + val = (unsigned int) 0; + mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; + shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; + for (bits = 0; bits < (int) sizeof(unsigned int) * 8 - chunk_size; bits += chunk_size) { + PyObject *tmp, *digit; + digit = PyNumber_And(stepval, mask); + if (unlikely(!digit)) goto done; + idigit = PyLong_AsLong(digit); + Py_DECREF(digit); + if (unlikely(idigit < 0)) goto done; + tmp = PyNumber_Rshift(stepval, shift); + if (unlikely(!tmp)) goto done; + Py_DECREF(stepval); stepval = tmp; + val |= ((unsigned int) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(stepval) == 0) + goto unpacking_done; + #endif + } + idigit = PyLong_AsLong(stepval); + if (unlikely(idigit < 0)) goto done; + remaining_bits = ((int) sizeof(unsigned int) * 8) - bits - (is_unsigned ? 0 : 1); + if (unlikely(idigit >= (1L << remaining_bits))) + goto raise_overflow; + val |= ((unsigned int) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + unpacking_done: + #endif + if (!is_unsigned) { + if (unlikely(val & (((unsigned int) 1) << (sizeof(unsigned int) * 8 - 1)))) + goto raise_overflow; + if (is_negative) + val = ~val; + } + ret = 0; + done: + Py_XDECREF(shift); + Py_XDECREF(mask); + Py_XDECREF(stepval); +#endif Py_DECREF(v); - return (unsigned int) -1; + if (likely(!ret)) + return val; } - is_negative = result == 1; - } - if (is_unsigned && unlikely(is_negative)) { - Py_DECREF(v); - goto raise_neg_overflow; - } else if (is_negative) { - stepval = PyNumber_Invert(v); - Py_DECREF(v); - if (unlikely(!stepval)) - return (unsigned int) -1; - } else { - stepval = v; - } - v = NULL; - val = (unsigned int) 0; - mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; - shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; - for (bits = 0; bits < (int) sizeof(unsigned int) * 8 - chunk_size; bits += chunk_size) { - PyObject *tmp, *digit; - long idigit; - digit = PyNumber_And(stepval, mask); - if (unlikely(!digit)) goto done; - idigit = PyLong_AsLong(digit); - Py_DECREF(digit); - if (unlikely(idigit < 0)) goto done; - val |= ((unsigned int) idigit) << bits; - tmp = PyNumber_Rshift(stepval, shift); - if (unlikely(!tmp)) goto done; - Py_DECREF(stepval); stepval = tmp; - } - Py_DECREF(shift); shift = NULL; - Py_DECREF(mask); mask = NULL; - { - long idigit = PyLong_AsLong(stepval); - if (unlikely(idigit < 0)) goto done; - remaining_bits = ((int) sizeof(unsigned int) * 8) - bits - (is_unsigned ? 0 : 1); - if (unlikely(idigit >= (1L << remaining_bits))) - goto raise_overflow; - val |= ((unsigned int) idigit) << bits; - } - if (!is_unsigned) { - if (unlikely(val & (((unsigned int) 1) << (sizeof(unsigned int) * 8 - 1)))) - goto raise_overflow; - if (is_negative) - val = ~val; - } - ret = 0; - done: - Py_XDECREF(shift); - Py_XDECREF(mask); - Py_XDECREF(stepval); -#endif - if (unlikely(ret)) return (unsigned int) -1; + } + } else { + unsigned int val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (unsigned int) -1; + val = __Pyx_PyInt_As_unsigned_int(tmp); + Py_DECREF(tmp); return val; } raise_overflow: @@ -107730,19 +149065,12 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) } } { - unsigned char *bytes = (unsigned char *)&value; -#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 - if (is_unsigned) { - return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); - } else { - return PyLong_FromNativeBytes(bytes, sizeof(value), -1); - } -#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; +#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 return _PyLong_FromByteArray(bytes, sizeof(unsigned int), little, !is_unsigned); #else - int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL; PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); @@ -107792,239 +149120,245 @@ static CYTHON_INLINE TA_Compatibility __Pyx_PyInt_As_TA_Compatibility(PyObject * } return (TA_Compatibility) val; } - } + } else #endif - if (unlikely(!PyLong_Check(x))) { - TA_Compatibility val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (TA_Compatibility) -1; - val = __Pyx_PyInt_As_TA_Compatibility(tmp); - Py_DECREF(tmp); - return val; - } - if (is_unsigned) { + if (likely(PyLong_Check(x))) { + if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS - if (unlikely(__Pyx_PyLong_IsNeg(x))) { - goto raise_neg_overflow; - } else if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(TA_Compatibility, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_DigitCount(x)) { - case 2: - if ((8 * sizeof(TA_Compatibility) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_Compatibility) >= 2 * PyLong_SHIFT)) { - return (TA_Compatibility) (((((TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0])); + if (unlikely(__Pyx_PyLong_IsNeg(x))) { + goto raise_neg_overflow; + } else if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(TA_Compatibility, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_DigitCount(x)) { + case 2: + if ((8 * sizeof(TA_Compatibility) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_Compatibility) >= 2 * PyLong_SHIFT)) { + return (TA_Compatibility) (((((TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0])); + } } - } - break; - case 3: - if ((8 * sizeof(TA_Compatibility) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_Compatibility) >= 3 * PyLong_SHIFT)) { - return (TA_Compatibility) (((((((TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0])); + break; + case 3: + if ((8 * sizeof(TA_Compatibility) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_Compatibility) >= 3 * PyLong_SHIFT)) { + return (TA_Compatibility) (((((((TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0])); + } } - } - break; - case 4: - if ((8 * sizeof(TA_Compatibility) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_Compatibility) >= 4 * PyLong_SHIFT)) { - return (TA_Compatibility) (((((((((TA_Compatibility)digits[3]) << PyLong_SHIFT) | (TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0])); + break; + case 4: + if ((8 * sizeof(TA_Compatibility) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_Compatibility) >= 4 * PyLong_SHIFT)) { + return (TA_Compatibility) (((((((((TA_Compatibility)digits[3]) << PyLong_SHIFT) | (TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0])); + } } - } - break; + break; + } } - } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (TA_Compatibility) -1; - if (unlikely(result == 1)) + if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; - } + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TA_Compatibility) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } #endif - if ((sizeof(TA_Compatibility) <= sizeof(unsigned long))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_Compatibility, unsigned long, PyLong_AsUnsignedLong(x)) + if ((sizeof(TA_Compatibility) <= sizeof(unsigned long))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_Compatibility, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(TA_Compatibility) <= sizeof(unsigned PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_Compatibility, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) + } else if ((sizeof(TA_Compatibility) <= sizeof(unsigned PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_Compatibility, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(TA_Compatibility, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_SignedDigitCount(x)) { - case -2: - if ((8 * sizeof(TA_Compatibility) - 1 > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_Compatibility, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_Compatibility) - 1 > 2 * PyLong_SHIFT)) { - return (TA_Compatibility) (((TA_Compatibility)-1)*(((((TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]))); +#if CYTHON_USE_PYLONG_INTERNALS + if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(TA_Compatibility, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_SignedDigitCount(x)) { + case -2: + if ((8 * sizeof(TA_Compatibility) - 1 > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_Compatibility, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_Compatibility) - 1 > 2 * PyLong_SHIFT)) { + return (TA_Compatibility) (((TA_Compatibility)-1)*(((((TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]))); + } } - } - break; - case 2: - if ((8 * sizeof(TA_Compatibility) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_Compatibility) - 1 > 2 * PyLong_SHIFT)) { - return (TA_Compatibility) ((((((TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]))); + break; + case 2: + if ((8 * sizeof(TA_Compatibility) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_Compatibility) - 1 > 2 * PyLong_SHIFT)) { + return (TA_Compatibility) ((((((TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]))); + } } - } - break; - case -3: - if ((8 * sizeof(TA_Compatibility) - 1 > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_Compatibility, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_Compatibility) - 1 > 3 * PyLong_SHIFT)) { - return (TA_Compatibility) (((TA_Compatibility)-1)*(((((((TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]))); + break; + case -3: + if ((8 * sizeof(TA_Compatibility) - 1 > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_Compatibility, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_Compatibility) - 1 > 3 * PyLong_SHIFT)) { + return (TA_Compatibility) (((TA_Compatibility)-1)*(((((((TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]))); + } } - } - break; - case 3: - if ((8 * sizeof(TA_Compatibility) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_Compatibility) - 1 > 3 * PyLong_SHIFT)) { - return (TA_Compatibility) ((((((((TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]))); + break; + case 3: + if ((8 * sizeof(TA_Compatibility) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_Compatibility) - 1 > 3 * PyLong_SHIFT)) { + return (TA_Compatibility) ((((((((TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]))); + } } - } - break; - case -4: - if ((8 * sizeof(TA_Compatibility) - 1 > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_Compatibility, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_Compatibility) - 1 > 4 * PyLong_SHIFT)) { - return (TA_Compatibility) (((TA_Compatibility)-1)*(((((((((TA_Compatibility)digits[3]) << PyLong_SHIFT) | (TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]))); + break; + case -4: + if ((8 * sizeof(TA_Compatibility) - 1 > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_Compatibility, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_Compatibility) - 1 > 4 * PyLong_SHIFT)) { + return (TA_Compatibility) (((TA_Compatibility)-1)*(((((((((TA_Compatibility)digits[3]) << PyLong_SHIFT) | (TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]))); + } } - } - break; - case 4: - if ((8 * sizeof(TA_Compatibility) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_Compatibility) - 1 > 4 * PyLong_SHIFT)) { - return (TA_Compatibility) ((((((((((TA_Compatibility)digits[3]) << PyLong_SHIFT) | (TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]))); + break; + case 4: + if ((8 * sizeof(TA_Compatibility) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_Compatibility, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_Compatibility) - 1 > 4 * PyLong_SHIFT)) { + return (TA_Compatibility) ((((((((((TA_Compatibility)digits[3]) << PyLong_SHIFT) | (TA_Compatibility)digits[2]) << PyLong_SHIFT) | (TA_Compatibility)digits[1]) << PyLong_SHIFT) | (TA_Compatibility)digits[0]))); + } } - } - break; + break; + } } - } #endif - if ((sizeof(TA_Compatibility) <= sizeof(long))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_Compatibility, long, PyLong_AsLong(x)) + if ((sizeof(TA_Compatibility) <= sizeof(long))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_Compatibility, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(TA_Compatibility) <= sizeof(PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_Compatibility, PY_LONG_LONG, PyLong_AsLongLong(x)) + } else if ((sizeof(TA_Compatibility) <= sizeof(PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_Compatibility, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif - } - } - { - TA_Compatibility val; - int ret = -1; -#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API - Py_ssize_t bytes_copied = PyLong_AsNativeBytes( - x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); - if (unlikely(bytes_copied == -1)) { - } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { - goto raise_overflow; - } else { - ret = 0; - } -#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - ret = _PyLong_AsByteArray((PyLongObject *)x, - bytes, sizeof(val), - is_little, !is_unsigned); -#else - PyObject *v; - PyObject *stepval = NULL, *mask = NULL, *shift = NULL; - int bits, remaining_bits, is_negative = 0; - int chunk_size = (sizeof(long) < 8) ? 30 : 62; - if (likely(PyLong_CheckExact(x))) { - v = __Pyx_NewRef(x); - } else { - v = PyNumber_Long(x); - if (unlikely(!v)) return (TA_Compatibility) -1; - assert(PyLong_CheckExact(v)); + } } { - int result = PyObject_RichCompareBool(v, Py_False, Py_LT); - if (unlikely(result < 0)) { + TA_Compatibility val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); +#if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } +#endif + if (likely(v)) { + int ret = -1; +#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); +#else + PyObject *stepval = NULL, *mask = NULL, *shift = NULL; + int bits, remaining_bits, is_negative = 0; + long idigit; + int chunk_size = (sizeof(long) < 8) ? 30 : 62; + if (unlikely(!PyLong_CheckExact(v))) { + PyObject *tmp = v; + v = PyNumber_Long(v); + assert(PyLong_CheckExact(v)); + Py_DECREF(tmp); + if (unlikely(!v)) return (TA_Compatibility) -1; + } +#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(x) == 0) + return (TA_Compatibility) 0; + is_negative = Py_SIZE(x) < 0; +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TA_Compatibility) -1; + is_negative = result == 1; + } +#endif + if (is_unsigned && unlikely(is_negative)) { + goto raise_neg_overflow; + } else if (is_negative) { + stepval = PyNumber_Invert(v); + if (unlikely(!stepval)) + return (TA_Compatibility) -1; + } else { + stepval = __Pyx_NewRef(v); + } + val = (TA_Compatibility) 0; + mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; + shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; + for (bits = 0; bits < (int) sizeof(TA_Compatibility) * 8 - chunk_size; bits += chunk_size) { + PyObject *tmp, *digit; + digit = PyNumber_And(stepval, mask); + if (unlikely(!digit)) goto done; + idigit = PyLong_AsLong(digit); + Py_DECREF(digit); + if (unlikely(idigit < 0)) goto done; + tmp = PyNumber_Rshift(stepval, shift); + if (unlikely(!tmp)) goto done; + Py_DECREF(stepval); stepval = tmp; + val |= ((TA_Compatibility) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(stepval) == 0) + goto unpacking_done; + #endif + } + idigit = PyLong_AsLong(stepval); + if (unlikely(idigit < 0)) goto done; + remaining_bits = ((int) sizeof(TA_Compatibility) * 8) - bits - (is_unsigned ? 0 : 1); + if (unlikely(idigit >= (1L << remaining_bits))) + goto raise_overflow; + val |= ((TA_Compatibility) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + unpacking_done: + #endif + if (!is_unsigned) { + if (unlikely(val & (((TA_Compatibility) 1) << (sizeof(TA_Compatibility) * 8 - 1)))) + goto raise_overflow; + if (is_negative) + val = ~val; + } + ret = 0; + done: + Py_XDECREF(shift); + Py_XDECREF(mask); + Py_XDECREF(stepval); +#endif Py_DECREF(v); - return (TA_Compatibility) -1; + if (likely(!ret)) + return val; } - is_negative = result == 1; - } - if (is_unsigned && unlikely(is_negative)) { - Py_DECREF(v); - goto raise_neg_overflow; - } else if (is_negative) { - stepval = PyNumber_Invert(v); - Py_DECREF(v); - if (unlikely(!stepval)) - return (TA_Compatibility) -1; - } else { - stepval = v; - } - v = NULL; - val = (TA_Compatibility) 0; - mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; - shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; - for (bits = 0; bits < (int) sizeof(TA_Compatibility) * 8 - chunk_size; bits += chunk_size) { - PyObject *tmp, *digit; - long idigit; - digit = PyNumber_And(stepval, mask); - if (unlikely(!digit)) goto done; - idigit = PyLong_AsLong(digit); - Py_DECREF(digit); - if (unlikely(idigit < 0)) goto done; - val |= ((TA_Compatibility) idigit) << bits; - tmp = PyNumber_Rshift(stepval, shift); - if (unlikely(!tmp)) goto done; - Py_DECREF(stepval); stepval = tmp; - } - Py_DECREF(shift); shift = NULL; - Py_DECREF(mask); mask = NULL; - { - long idigit = PyLong_AsLong(stepval); - if (unlikely(idigit < 0)) goto done; - remaining_bits = ((int) sizeof(TA_Compatibility) * 8) - bits - (is_unsigned ? 0 : 1); - if (unlikely(idigit >= (1L << remaining_bits))) - goto raise_overflow; - val |= ((TA_Compatibility) idigit) << bits; - } - if (!is_unsigned) { - if (unlikely(val & (((TA_Compatibility) 1) << (sizeof(TA_Compatibility) * 8 - 1)))) - goto raise_overflow; - if (is_negative) - val = ~val; - } - ret = 0; - done: - Py_XDECREF(shift); - Py_XDECREF(mask); - Py_XDECREF(stepval); -#endif - if (unlikely(ret)) return (TA_Compatibility) -1; + } + } else { + TA_Compatibility val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (TA_Compatibility) -1; + val = __Pyx_PyInt_As_TA_Compatibility(tmp); + Py_DECREF(tmp); return val; } raise_overflow: @@ -108059,239 +149393,245 @@ static CYTHON_INLINE TA_CandleSettingType __Pyx_PyInt_As_TA_CandleSettingType(Py } return (TA_CandleSettingType) val; } - } + } else #endif - if (unlikely(!PyLong_Check(x))) { - TA_CandleSettingType val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (TA_CandleSettingType) -1; - val = __Pyx_PyInt_As_TA_CandleSettingType(tmp); - Py_DECREF(tmp); - return val; - } - if (is_unsigned) { + if (likely(PyLong_Check(x))) { + if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS - if (unlikely(__Pyx_PyLong_IsNeg(x))) { - goto raise_neg_overflow; - } else if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_DigitCount(x)) { - case 2: - if ((8 * sizeof(TA_CandleSettingType) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_CandleSettingType) >= 2 * PyLong_SHIFT)) { - return (TA_CandleSettingType) (((((TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0])); + if (unlikely(__Pyx_PyLong_IsNeg(x))) { + goto raise_neg_overflow; + } else if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_DigitCount(x)) { + case 2: + if ((8 * sizeof(TA_CandleSettingType) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_CandleSettingType) >= 2 * PyLong_SHIFT)) { + return (TA_CandleSettingType) (((((TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0])); + } } - } - break; - case 3: - if ((8 * sizeof(TA_CandleSettingType) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_CandleSettingType) >= 3 * PyLong_SHIFT)) { - return (TA_CandleSettingType) (((((((TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0])); + break; + case 3: + if ((8 * sizeof(TA_CandleSettingType) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_CandleSettingType) >= 3 * PyLong_SHIFT)) { + return (TA_CandleSettingType) (((((((TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0])); + } } - } - break; - case 4: - if ((8 * sizeof(TA_CandleSettingType) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_CandleSettingType) >= 4 * PyLong_SHIFT)) { - return (TA_CandleSettingType) (((((((((TA_CandleSettingType)digits[3]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0])); + break; + case 4: + if ((8 * sizeof(TA_CandleSettingType) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_CandleSettingType) >= 4 * PyLong_SHIFT)) { + return (TA_CandleSettingType) (((((((((TA_CandleSettingType)digits[3]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0])); + } } - } - break; + break; + } } - } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (TA_CandleSettingType) -1; - if (unlikely(result == 1)) + if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; - } + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TA_CandleSettingType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } #endif - if ((sizeof(TA_CandleSettingType) <= sizeof(unsigned long))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_CandleSettingType, unsigned long, PyLong_AsUnsignedLong(x)) + if ((sizeof(TA_CandleSettingType) <= sizeof(unsigned long))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_CandleSettingType, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(TA_CandleSettingType) <= sizeof(unsigned PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_CandleSettingType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) + } else if ((sizeof(TA_CandleSettingType) <= sizeof(unsigned PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_CandleSettingType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_SignedDigitCount(x)) { - case -2: - if ((8 * sizeof(TA_CandleSettingType) - 1 > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 2 * PyLong_SHIFT)) { - return (TA_CandleSettingType) (((TA_CandleSettingType)-1)*(((((TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]))); +#if CYTHON_USE_PYLONG_INTERNALS + if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_SignedDigitCount(x)) { + case -2: + if ((8 * sizeof(TA_CandleSettingType) - 1 > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 2 * PyLong_SHIFT)) { + return (TA_CandleSettingType) (((TA_CandleSettingType)-1)*(((((TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]))); + } } - } - break; - case 2: - if ((8 * sizeof(TA_CandleSettingType) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 2 * PyLong_SHIFT)) { - return (TA_CandleSettingType) ((((((TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]))); + break; + case 2: + if ((8 * sizeof(TA_CandleSettingType) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 2 * PyLong_SHIFT)) { + return (TA_CandleSettingType) ((((((TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]))); + } } - } - break; - case -3: - if ((8 * sizeof(TA_CandleSettingType) - 1 > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 3 * PyLong_SHIFT)) { - return (TA_CandleSettingType) (((TA_CandleSettingType)-1)*(((((((TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]))); + break; + case -3: + if ((8 * sizeof(TA_CandleSettingType) - 1 > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 3 * PyLong_SHIFT)) { + return (TA_CandleSettingType) (((TA_CandleSettingType)-1)*(((((((TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]))); + } } - } - break; - case 3: - if ((8 * sizeof(TA_CandleSettingType) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 3 * PyLong_SHIFT)) { - return (TA_CandleSettingType) ((((((((TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]))); + break; + case 3: + if ((8 * sizeof(TA_CandleSettingType) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 3 * PyLong_SHIFT)) { + return (TA_CandleSettingType) ((((((((TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]))); + } } - } - break; - case -4: - if ((8 * sizeof(TA_CandleSettingType) - 1 > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 4 * PyLong_SHIFT)) { - return (TA_CandleSettingType) (((TA_CandleSettingType)-1)*(((((((((TA_CandleSettingType)digits[3]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]))); + break; + case -4: + if ((8 * sizeof(TA_CandleSettingType) - 1 > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 4 * PyLong_SHIFT)) { + return (TA_CandleSettingType) (((TA_CandleSettingType)-1)*(((((((((TA_CandleSettingType)digits[3]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]))); + } } - } - break; - case 4: - if ((8 * sizeof(TA_CandleSettingType) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 4 * PyLong_SHIFT)) { - return (TA_CandleSettingType) ((((((((((TA_CandleSettingType)digits[3]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]))); + break; + case 4: + if ((8 * sizeof(TA_CandleSettingType) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_CandleSettingType) - 1 > 4 * PyLong_SHIFT)) { + return (TA_CandleSettingType) ((((((((((TA_CandleSettingType)digits[3]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[2]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[1]) << PyLong_SHIFT) | (TA_CandleSettingType)digits[0]))); + } } - } - break; + break; + } } - } #endif - if ((sizeof(TA_CandleSettingType) <= sizeof(long))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_CandleSettingType, long, PyLong_AsLong(x)) + if ((sizeof(TA_CandleSettingType) <= sizeof(long))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_CandleSettingType, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(TA_CandleSettingType) <= sizeof(PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_CandleSettingType, PY_LONG_LONG, PyLong_AsLongLong(x)) + } else if ((sizeof(TA_CandleSettingType) <= sizeof(PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_CandleSettingType, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif - } - } - { - TA_CandleSettingType val; - int ret = -1; -#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API - Py_ssize_t bytes_copied = PyLong_AsNativeBytes( - x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); - if (unlikely(bytes_copied == -1)) { - } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { - goto raise_overflow; - } else { - ret = 0; - } -#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - ret = _PyLong_AsByteArray((PyLongObject *)x, - bytes, sizeof(val), - is_little, !is_unsigned); -#else - PyObject *v; - PyObject *stepval = NULL, *mask = NULL, *shift = NULL; - int bits, remaining_bits, is_negative = 0; - int chunk_size = (sizeof(long) < 8) ? 30 : 62; - if (likely(PyLong_CheckExact(x))) { - v = __Pyx_NewRef(x); - } else { - v = PyNumber_Long(x); - if (unlikely(!v)) return (TA_CandleSettingType) -1; - assert(PyLong_CheckExact(v)); + } } { - int result = PyObject_RichCompareBool(v, Py_False, Py_LT); - if (unlikely(result < 0)) { + TA_CandleSettingType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); +#if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } +#endif + if (likely(v)) { + int ret = -1; +#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); +#else + PyObject *stepval = NULL, *mask = NULL, *shift = NULL; + int bits, remaining_bits, is_negative = 0; + long idigit; + int chunk_size = (sizeof(long) < 8) ? 30 : 62; + if (unlikely(!PyLong_CheckExact(v))) { + PyObject *tmp = v; + v = PyNumber_Long(v); + assert(PyLong_CheckExact(v)); + Py_DECREF(tmp); + if (unlikely(!v)) return (TA_CandleSettingType) -1; + } +#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(x) == 0) + return (TA_CandleSettingType) 0; + is_negative = Py_SIZE(x) < 0; +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TA_CandleSettingType) -1; + is_negative = result == 1; + } +#endif + if (is_unsigned && unlikely(is_negative)) { + goto raise_neg_overflow; + } else if (is_negative) { + stepval = PyNumber_Invert(v); + if (unlikely(!stepval)) + return (TA_CandleSettingType) -1; + } else { + stepval = __Pyx_NewRef(v); + } + val = (TA_CandleSettingType) 0; + mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; + shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; + for (bits = 0; bits < (int) sizeof(TA_CandleSettingType) * 8 - chunk_size; bits += chunk_size) { + PyObject *tmp, *digit; + digit = PyNumber_And(stepval, mask); + if (unlikely(!digit)) goto done; + idigit = PyLong_AsLong(digit); + Py_DECREF(digit); + if (unlikely(idigit < 0)) goto done; + tmp = PyNumber_Rshift(stepval, shift); + if (unlikely(!tmp)) goto done; + Py_DECREF(stepval); stepval = tmp; + val |= ((TA_CandleSettingType) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(stepval) == 0) + goto unpacking_done; + #endif + } + idigit = PyLong_AsLong(stepval); + if (unlikely(idigit < 0)) goto done; + remaining_bits = ((int) sizeof(TA_CandleSettingType) * 8) - bits - (is_unsigned ? 0 : 1); + if (unlikely(idigit >= (1L << remaining_bits))) + goto raise_overflow; + val |= ((TA_CandleSettingType) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + unpacking_done: + #endif + if (!is_unsigned) { + if (unlikely(val & (((TA_CandleSettingType) 1) << (sizeof(TA_CandleSettingType) * 8 - 1)))) + goto raise_overflow; + if (is_negative) + val = ~val; + } + ret = 0; + done: + Py_XDECREF(shift); + Py_XDECREF(mask); + Py_XDECREF(stepval); +#endif Py_DECREF(v); - return (TA_CandleSettingType) -1; + if (likely(!ret)) + return val; } - is_negative = result == 1; - } - if (is_unsigned && unlikely(is_negative)) { - Py_DECREF(v); - goto raise_neg_overflow; - } else if (is_negative) { - stepval = PyNumber_Invert(v); - Py_DECREF(v); - if (unlikely(!stepval)) - return (TA_CandleSettingType) -1; - } else { - stepval = v; - } - v = NULL; - val = (TA_CandleSettingType) 0; - mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; - shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; - for (bits = 0; bits < (int) sizeof(TA_CandleSettingType) * 8 - chunk_size; bits += chunk_size) { - PyObject *tmp, *digit; - long idigit; - digit = PyNumber_And(stepval, mask); - if (unlikely(!digit)) goto done; - idigit = PyLong_AsLong(digit); - Py_DECREF(digit); - if (unlikely(idigit < 0)) goto done; - val |= ((TA_CandleSettingType) idigit) << bits; - tmp = PyNumber_Rshift(stepval, shift); - if (unlikely(!tmp)) goto done; - Py_DECREF(stepval); stepval = tmp; - } - Py_DECREF(shift); shift = NULL; - Py_DECREF(mask); mask = NULL; - { - long idigit = PyLong_AsLong(stepval); - if (unlikely(idigit < 0)) goto done; - remaining_bits = ((int) sizeof(TA_CandleSettingType) * 8) - bits - (is_unsigned ? 0 : 1); - if (unlikely(idigit >= (1L << remaining_bits))) - goto raise_overflow; - val |= ((TA_CandleSettingType) idigit) << bits; - } - if (!is_unsigned) { - if (unlikely(val & (((TA_CandleSettingType) 1) << (sizeof(TA_CandleSettingType) * 8 - 1)))) - goto raise_overflow; - if (is_negative) - val = ~val; - } - ret = 0; - done: - Py_XDECREF(shift); - Py_XDECREF(mask); - Py_XDECREF(stepval); -#endif - if (unlikely(ret)) return (TA_CandleSettingType) -1; + } + } else { + TA_CandleSettingType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (TA_CandleSettingType) -1; + val = __Pyx_PyInt_As_TA_CandleSettingType(tmp); + Py_DECREF(tmp); return val; } raise_overflow: @@ -108326,239 +149666,245 @@ static CYTHON_INLINE TA_RangeType __Pyx_PyInt_As_TA_RangeType(PyObject *x) { } return (TA_RangeType) val; } - } + } else #endif - if (unlikely(!PyLong_Check(x))) { - TA_RangeType val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (TA_RangeType) -1; - val = __Pyx_PyInt_As_TA_RangeType(tmp); - Py_DECREF(tmp); - return val; - } - if (is_unsigned) { + if (likely(PyLong_Check(x))) { + if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS - if (unlikely(__Pyx_PyLong_IsNeg(x))) { - goto raise_neg_overflow; - } else if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(TA_RangeType, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_DigitCount(x)) { - case 2: - if ((8 * sizeof(TA_RangeType) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RangeType) >= 2 * PyLong_SHIFT)) { - return (TA_RangeType) (((((TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0])); + if (unlikely(__Pyx_PyLong_IsNeg(x))) { + goto raise_neg_overflow; + } else if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(TA_RangeType, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_DigitCount(x)) { + case 2: + if ((8 * sizeof(TA_RangeType) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RangeType) >= 2 * PyLong_SHIFT)) { + return (TA_RangeType) (((((TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0])); + } } - } - break; - case 3: - if ((8 * sizeof(TA_RangeType) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RangeType) >= 3 * PyLong_SHIFT)) { - return (TA_RangeType) (((((((TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0])); + break; + case 3: + if ((8 * sizeof(TA_RangeType) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RangeType) >= 3 * PyLong_SHIFT)) { + return (TA_RangeType) (((((((TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0])); + } } - } - break; - case 4: - if ((8 * sizeof(TA_RangeType) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RangeType) >= 4 * PyLong_SHIFT)) { - return (TA_RangeType) (((((((((TA_RangeType)digits[3]) << PyLong_SHIFT) | (TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0])); + break; + case 4: + if ((8 * sizeof(TA_RangeType) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RangeType) >= 4 * PyLong_SHIFT)) { + return (TA_RangeType) (((((((((TA_RangeType)digits[3]) << PyLong_SHIFT) | (TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0])); + } } - } - break; + break; + } } - } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (TA_RangeType) -1; - if (unlikely(result == 1)) + if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; - } + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TA_RangeType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } #endif - if ((sizeof(TA_RangeType) <= sizeof(unsigned long))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_RangeType, unsigned long, PyLong_AsUnsignedLong(x)) + if ((sizeof(TA_RangeType) <= sizeof(unsigned long))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_RangeType, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(TA_RangeType) <= sizeof(unsigned PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_RangeType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) + } else if ((sizeof(TA_RangeType) <= sizeof(unsigned PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_RangeType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(TA_RangeType, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_SignedDigitCount(x)) { - case -2: - if ((8 * sizeof(TA_RangeType) - 1 > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RangeType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RangeType) - 1 > 2 * PyLong_SHIFT)) { - return (TA_RangeType) (((TA_RangeType)-1)*(((((TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]))); +#if CYTHON_USE_PYLONG_INTERNALS + if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(TA_RangeType, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_SignedDigitCount(x)) { + case -2: + if ((8 * sizeof(TA_RangeType) - 1 > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RangeType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RangeType) - 1 > 2 * PyLong_SHIFT)) { + return (TA_RangeType) (((TA_RangeType)-1)*(((((TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]))); + } } - } - break; - case 2: - if ((8 * sizeof(TA_RangeType) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RangeType) - 1 > 2 * PyLong_SHIFT)) { - return (TA_RangeType) ((((((TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]))); + break; + case 2: + if ((8 * sizeof(TA_RangeType) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RangeType) - 1 > 2 * PyLong_SHIFT)) { + return (TA_RangeType) ((((((TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]))); + } } - } - break; - case -3: - if ((8 * sizeof(TA_RangeType) - 1 > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RangeType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RangeType) - 1 > 3 * PyLong_SHIFT)) { - return (TA_RangeType) (((TA_RangeType)-1)*(((((((TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]))); + break; + case -3: + if ((8 * sizeof(TA_RangeType) - 1 > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RangeType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RangeType) - 1 > 3 * PyLong_SHIFT)) { + return (TA_RangeType) (((TA_RangeType)-1)*(((((((TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]))); + } } - } - break; - case 3: - if ((8 * sizeof(TA_RangeType) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RangeType) - 1 > 3 * PyLong_SHIFT)) { - return (TA_RangeType) ((((((((TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]))); + break; + case 3: + if ((8 * sizeof(TA_RangeType) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RangeType) - 1 > 3 * PyLong_SHIFT)) { + return (TA_RangeType) ((((((((TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]))); + } } - } - break; - case -4: - if ((8 * sizeof(TA_RangeType) - 1 > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RangeType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RangeType) - 1 > 4 * PyLong_SHIFT)) { - return (TA_RangeType) (((TA_RangeType)-1)*(((((((((TA_RangeType)digits[3]) << PyLong_SHIFT) | (TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]))); + break; + case -4: + if ((8 * sizeof(TA_RangeType) - 1 > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RangeType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RangeType) - 1 > 4 * PyLong_SHIFT)) { + return (TA_RangeType) (((TA_RangeType)-1)*(((((((((TA_RangeType)digits[3]) << PyLong_SHIFT) | (TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]))); + } } - } - break; - case 4: - if ((8 * sizeof(TA_RangeType) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(TA_RangeType) - 1 > 4 * PyLong_SHIFT)) { - return (TA_RangeType) ((((((((((TA_RangeType)digits[3]) << PyLong_SHIFT) | (TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]))); + break; + case 4: + if ((8 * sizeof(TA_RangeType) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(TA_RangeType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(TA_RangeType) - 1 > 4 * PyLong_SHIFT)) { + return (TA_RangeType) ((((((((((TA_RangeType)digits[3]) << PyLong_SHIFT) | (TA_RangeType)digits[2]) << PyLong_SHIFT) | (TA_RangeType)digits[1]) << PyLong_SHIFT) | (TA_RangeType)digits[0]))); + } } - } - break; + break; + } } - } #endif - if ((sizeof(TA_RangeType) <= sizeof(long))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_RangeType, long, PyLong_AsLong(x)) + if ((sizeof(TA_RangeType) <= sizeof(long))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_RangeType, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(TA_RangeType) <= sizeof(PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(TA_RangeType, PY_LONG_LONG, PyLong_AsLongLong(x)) + } else if ((sizeof(TA_RangeType) <= sizeof(PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(TA_RangeType, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif - } - } - { - TA_RangeType val; - int ret = -1; -#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API - Py_ssize_t bytes_copied = PyLong_AsNativeBytes( - x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); - if (unlikely(bytes_copied == -1)) { - } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { - goto raise_overflow; - } else { - ret = 0; - } -#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - ret = _PyLong_AsByteArray((PyLongObject *)x, - bytes, sizeof(val), - is_little, !is_unsigned); -#else - PyObject *v; - PyObject *stepval = NULL, *mask = NULL, *shift = NULL; - int bits, remaining_bits, is_negative = 0; - int chunk_size = (sizeof(long) < 8) ? 30 : 62; - if (likely(PyLong_CheckExact(x))) { - v = __Pyx_NewRef(x); - } else { - v = PyNumber_Long(x); - if (unlikely(!v)) return (TA_RangeType) -1; - assert(PyLong_CheckExact(v)); + } } { - int result = PyObject_RichCompareBool(v, Py_False, Py_LT); - if (unlikely(result < 0)) { + TA_RangeType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); +#if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } +#endif + if (likely(v)) { + int ret = -1; +#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); +#else + PyObject *stepval = NULL, *mask = NULL, *shift = NULL; + int bits, remaining_bits, is_negative = 0; + long idigit; + int chunk_size = (sizeof(long) < 8) ? 30 : 62; + if (unlikely(!PyLong_CheckExact(v))) { + PyObject *tmp = v; + v = PyNumber_Long(v); + assert(PyLong_CheckExact(v)); + Py_DECREF(tmp); + if (unlikely(!v)) return (TA_RangeType) -1; + } +#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(x) == 0) + return (TA_RangeType) 0; + is_negative = Py_SIZE(x) < 0; +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TA_RangeType) -1; + is_negative = result == 1; + } +#endif + if (is_unsigned && unlikely(is_negative)) { + goto raise_neg_overflow; + } else if (is_negative) { + stepval = PyNumber_Invert(v); + if (unlikely(!stepval)) + return (TA_RangeType) -1; + } else { + stepval = __Pyx_NewRef(v); + } + val = (TA_RangeType) 0; + mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; + shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; + for (bits = 0; bits < (int) sizeof(TA_RangeType) * 8 - chunk_size; bits += chunk_size) { + PyObject *tmp, *digit; + digit = PyNumber_And(stepval, mask); + if (unlikely(!digit)) goto done; + idigit = PyLong_AsLong(digit); + Py_DECREF(digit); + if (unlikely(idigit < 0)) goto done; + tmp = PyNumber_Rshift(stepval, shift); + if (unlikely(!tmp)) goto done; + Py_DECREF(stepval); stepval = tmp; + val |= ((TA_RangeType) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(stepval) == 0) + goto unpacking_done; + #endif + } + idigit = PyLong_AsLong(stepval); + if (unlikely(idigit < 0)) goto done; + remaining_bits = ((int) sizeof(TA_RangeType) * 8) - bits - (is_unsigned ? 0 : 1); + if (unlikely(idigit >= (1L << remaining_bits))) + goto raise_overflow; + val |= ((TA_RangeType) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + unpacking_done: + #endif + if (!is_unsigned) { + if (unlikely(val & (((TA_RangeType) 1) << (sizeof(TA_RangeType) * 8 - 1)))) + goto raise_overflow; + if (is_negative) + val = ~val; + } + ret = 0; + done: + Py_XDECREF(shift); + Py_XDECREF(mask); + Py_XDECREF(stepval); +#endif Py_DECREF(v); - return (TA_RangeType) -1; + if (likely(!ret)) + return val; } - is_negative = result == 1; - } - if (is_unsigned && unlikely(is_negative)) { - Py_DECREF(v); - goto raise_neg_overflow; - } else if (is_negative) { - stepval = PyNumber_Invert(v); - Py_DECREF(v); - if (unlikely(!stepval)) - return (TA_RangeType) -1; - } else { - stepval = v; - } - v = NULL; - val = (TA_RangeType) 0; - mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; - shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; - for (bits = 0; bits < (int) sizeof(TA_RangeType) * 8 - chunk_size; bits += chunk_size) { - PyObject *tmp, *digit; - long idigit; - digit = PyNumber_And(stepval, mask); - if (unlikely(!digit)) goto done; - idigit = PyLong_AsLong(digit); - Py_DECREF(digit); - if (unlikely(idigit < 0)) goto done; - val |= ((TA_RangeType) idigit) << bits; - tmp = PyNumber_Rshift(stepval, shift); - if (unlikely(!tmp)) goto done; - Py_DECREF(stepval); stepval = tmp; - } - Py_DECREF(shift); shift = NULL; - Py_DECREF(mask); mask = NULL; - { - long idigit = PyLong_AsLong(stepval); - if (unlikely(idigit < 0)) goto done; - remaining_bits = ((int) sizeof(TA_RangeType) * 8) - bits - (is_unsigned ? 0 : 1); - if (unlikely(idigit >= (1L << remaining_bits))) - goto raise_overflow; - val |= ((TA_RangeType) idigit) << bits; - } - if (!is_unsigned) { - if (unlikely(val & (((TA_RangeType) 1) << (sizeof(TA_RangeType) * 8 - 1)))) - goto raise_overflow; - if (is_negative) - val = ~val; - } - ret = 0; - done: - Py_XDECREF(shift); - Py_XDECREF(mask); - Py_XDECREF(stepval); -#endif - if (unlikely(ret)) return (TA_RangeType) -1; + } + } else { + TA_RangeType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (TA_RangeType) -1; + val = __Pyx_PyInt_As_TA_RangeType(tmp); + Py_DECREF(tmp); return val; } raise_overflow: @@ -108602,19 +149948,12 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { } } { - unsigned char *bytes = (unsigned char *)&value; -#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 - if (is_unsigned) { - return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); - } else { - return PyLong_FromNativeBytes(bytes, sizeof(value), -1); - } -#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; +#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 return _PyLong_FromByteArray(bytes, sizeof(long), little, !is_unsigned); #else - int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL; PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); @@ -108673,19 +150012,12 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptI } } { - unsigned char *bytes = (unsigned char *)&value; -#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 - if (is_unsigned) { - return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); - } else { - return PyLong_FromNativeBytes(bytes, sizeof(value), -1); - } -#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; +#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 return _PyLong_FromByteArray(bytes, sizeof(TA_OptInputParameterType), little, !is_unsigned); #else - int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL; PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); @@ -108744,19 +150076,12 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_FuncFlags(TA_FuncFlags value) } } { - unsigned char *bytes = (unsigned char *)&value; -#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 - if (is_unsigned) { - return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); - } else { - return PyLong_FromNativeBytes(bytes, sizeof(value), -1); - } -#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; +#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 return _PyLong_FromByteArray(bytes, sizeof(TA_FuncFlags), little, !is_unsigned); #else - int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL; PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); @@ -108815,19 +150140,12 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_InputFlags(TA_InputFlags valu } } { - unsigned char *bytes = (unsigned char *)&value; -#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 - if (is_unsigned) { - return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); - } else { - return PyLong_FromNativeBytes(bytes, sizeof(value), -1); - } -#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; +#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 return _PyLong_FromByteArray(bytes, sizeof(TA_InputFlags), little, !is_unsigned); #else - int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL; PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); @@ -108886,19 +150204,12 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_OutputFlags(TA_OutputFlags va } } { - unsigned char *bytes = (unsigned char *)&value; -#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 - if (is_unsigned) { - return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); - } else { - return PyLong_FromNativeBytes(bytes, sizeof(value), -1); - } -#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; +#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 return _PyLong_FromByteArray(bytes, sizeof(TA_OutputFlags), little, !is_unsigned); #else - int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL; PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); @@ -108964,239 +150275,245 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { } return (long) val; } - } + } else #endif - if (unlikely(!PyLong_Check(x))) { - long val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (long) -1; - val = __Pyx_PyInt_As_long(tmp); - Py_DECREF(tmp); - return val; - } - if (is_unsigned) { + if (likely(PyLong_Check(x))) { + if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS - if (unlikely(__Pyx_PyLong_IsNeg(x))) { - goto raise_neg_overflow; - } else if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_DigitCount(x)) { - case 2: - if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) { - return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + if (unlikely(__Pyx_PyLong_IsNeg(x))) { + goto raise_neg_overflow; + } else if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_DigitCount(x)) { + case 2: + if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) { + return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } } - } - break; - case 3: - if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) { - return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + break; + case 3: + if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) { + return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } } - } - break; - case 4: - if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) { - return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + break; + case 4: + if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) { + return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } } - } - break; + break; + } } - } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (long) -1; - if (unlikely(result == 1)) + if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; - } + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (long) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } #endif - if ((sizeof(long) <= sizeof(unsigned long))) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) + if ((sizeof(long) <= sizeof(unsigned long))) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) + } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_SignedDigitCount(x)) { - case -2: - if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { - return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); +#if CYTHON_USE_PYLONG_INTERNALS + if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_SignedDigitCount(x)) { + case -2: + if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { + return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } } - } - break; - case 2: - if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { - return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + break; + case 2: + if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { + return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } } - } - break; - case -3: - if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { - return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + break; + case -3: + if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { + return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } } - } - break; - case 3: - if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { - return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + break; + case 3: + if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { + return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } } - } - break; - case -4: - if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) { - return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + break; + case -4: + if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) { + return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } } - } - break; - case 4: - if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) { - return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + break; + case 4: + if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) { + return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } } - } - break; + break; + } } - } #endif - if ((sizeof(long) <= sizeof(long))) { - __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) + if ((sizeof(long) <= sizeof(long))) { + __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG - } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) + } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif - } - } - { - long val; - int ret = -1; -#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API - Py_ssize_t bytes_copied = PyLong_AsNativeBytes( - x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); - if (unlikely(bytes_copied == -1)) { - } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { - goto raise_overflow; - } else { - ret = 0; - } -#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - ret = _PyLong_AsByteArray((PyLongObject *)x, - bytes, sizeof(val), - is_little, !is_unsigned); -#else - PyObject *v; - PyObject *stepval = NULL, *mask = NULL, *shift = NULL; - int bits, remaining_bits, is_negative = 0; - int chunk_size = (sizeof(long) < 8) ? 30 : 62; - if (likely(PyLong_CheckExact(x))) { - v = __Pyx_NewRef(x); - } else { - v = PyNumber_Long(x); - if (unlikely(!v)) return (long) -1; - assert(PyLong_CheckExact(v)); + } } { - int result = PyObject_RichCompareBool(v, Py_False, Py_LT); - if (unlikely(result < 0)) { + long val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); +#if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } +#endif + if (likely(v)) { + int ret = -1; +#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); +#else + PyObject *stepval = NULL, *mask = NULL, *shift = NULL; + int bits, remaining_bits, is_negative = 0; + long idigit; + int chunk_size = (sizeof(long) < 8) ? 30 : 62; + if (unlikely(!PyLong_CheckExact(v))) { + PyObject *tmp = v; + v = PyNumber_Long(v); + assert(PyLong_CheckExact(v)); + Py_DECREF(tmp); + if (unlikely(!v)) return (long) -1; + } +#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(x) == 0) + return (long) 0; + is_negative = Py_SIZE(x) < 0; +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (long) -1; + is_negative = result == 1; + } +#endif + if (is_unsigned && unlikely(is_negative)) { + goto raise_neg_overflow; + } else if (is_negative) { + stepval = PyNumber_Invert(v); + if (unlikely(!stepval)) + return (long) -1; + } else { + stepval = __Pyx_NewRef(v); + } + val = (long) 0; + mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; + shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; + for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) { + PyObject *tmp, *digit; + digit = PyNumber_And(stepval, mask); + if (unlikely(!digit)) goto done; + idigit = PyLong_AsLong(digit); + Py_DECREF(digit); + if (unlikely(idigit < 0)) goto done; + tmp = PyNumber_Rshift(stepval, shift); + if (unlikely(!tmp)) goto done; + Py_DECREF(stepval); stepval = tmp; + val |= ((long) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(stepval) == 0) + goto unpacking_done; + #endif + } + idigit = PyLong_AsLong(stepval); + if (unlikely(idigit < 0)) goto done; + remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1); + if (unlikely(idigit >= (1L << remaining_bits))) + goto raise_overflow; + val |= ((long) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + unpacking_done: + #endif + if (!is_unsigned) { + if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1)))) + goto raise_overflow; + if (is_negative) + val = ~val; + } + ret = 0; + done: + Py_XDECREF(shift); + Py_XDECREF(mask); + Py_XDECREF(stepval); +#endif Py_DECREF(v); - return (long) -1; + if (likely(!ret)) + return val; } - is_negative = result == 1; - } - if (is_unsigned && unlikely(is_negative)) { - Py_DECREF(v); - goto raise_neg_overflow; - } else if (is_negative) { - stepval = PyNumber_Invert(v); - Py_DECREF(v); - if (unlikely(!stepval)) - return (long) -1; - } else { - stepval = v; - } - v = NULL; - val = (long) 0; - mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; - shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; - for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) { - PyObject *tmp, *digit; - long idigit; - digit = PyNumber_And(stepval, mask); - if (unlikely(!digit)) goto done; - idigit = PyLong_AsLong(digit); - Py_DECREF(digit); - if (unlikely(idigit < 0)) goto done; - val |= ((long) idigit) << bits; - tmp = PyNumber_Rshift(stepval, shift); - if (unlikely(!tmp)) goto done; - Py_DECREF(stepval); stepval = tmp; - } - Py_DECREF(shift); shift = NULL; - Py_DECREF(mask); mask = NULL; - { - long idigit = PyLong_AsLong(stepval); - if (unlikely(idigit < 0)) goto done; - remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1); - if (unlikely(idigit >= (1L << remaining_bits))) - goto raise_overflow; - val |= ((long) idigit) << bits; - } - if (!is_unsigned) { - if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1)))) - goto raise_overflow; - if (is_negative) - val = ~val; - } - ret = 0; - done: - Py_XDECREF(shift); - Py_XDECREF(mask); - Py_XDECREF(stepval); -#endif - if (unlikely(ret)) return (long) -1; + } + } else { + long val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (long) -1; + val = __Pyx_PyInt_As_long(tmp); + Py_DECREF(tmp); return val; } raise_overflow: diff --git a/tools/generate_func.py b/tools/generate_func.py index 65a02c7e2..187c34163 100644 --- a/tools/generate_func.py +++ b/tools/generate_func.py @@ -89,7 +89,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 @@ -189,7 +189,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 @@ -199,7 +199,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