/* Generated by Cython 0.29.25 */

#ifndef PY_SSIZE_T_CLEAN
#define PY_SSIZE_T_CLEAN
#endif /* PY_SSIZE_T_CLEAN */
#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
    #error Cython requires Python 2.6+ or Python 3.3+.
#else
#define CYTHON_ABI "0_29_25"
#define CYTHON_HEX_VERSION 0x001D19F0
#define CYTHON_FUTURE_DIVISION 0
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#define __PYX_COMMA ,
#ifndef HAVE_LONG_LONG
  #if PY_VERSION_HEX >= 0x02070000
    #define HAVE_LONG_LONG
  #endif
#endif
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#ifdef PYPY_VERSION
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #if PY_VERSION_HEX < 0x03050000
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#elif defined(PYSTON_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_ASYNC_SLOTS
  #define CYTHON_USE_ASYNC_SLOTS 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #if PY_VERSION_HEX < 0x02070000
    #undef CYTHON_USE_PYTYPE_LOOKUP
    #define CYTHON_USE_PYTYPE_LOOKUP 0
  #elif !defined(CYTHON_USE_PYTYPE_LOOKUP)
    #define CYTHON_USE_PYTYPE_LOOKUP 1
  #endif
  #if PY_MAJOR_VERSION < 3
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #if PY_VERSION_HEX < 0x02070000
    #undef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 0
  #elif !defined(CYTHON_USE_PYLONG_INTERNALS)
    #define CYTHON_USE_PYLONG_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_PYLIST_INTERNALS
    #define CYTHON_USE_PYLIST_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1)
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
  #endif
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1)
  #endif
  #ifndef CYTHON_USE_DICT_VERSIONS
    #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1)
  #endif
  #ifndef CYTHON_USE_EXC_INFO_STACK
    #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3)
  #endif
#endif
#if !defined(CYTHON_FAST_PYCCALL)
#define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
#endif
#if CYTHON_USE_PYLONG_INTERNALS
  #if PY_MAJOR_VERSION < 3
    #include "longintrepr.h"
  #endif
  #undef SHIFT
  #undef BASE
  #undef MASK
  #ifdef SIZEOF_VOID_P
    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
  #endif
#endif
#ifndef __has_attribute
  #define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
  #define __has_cpp_attribute(x) 0
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_MAYBE_UNUSED_VAR
#  if defined(__cplusplus)
     template<class T> void CYTHON_MAYBE_UNUSED_VAR( const T& ) { }
#  else
#    define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x)
#  endif
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
#ifdef _MSC_VER
    #ifndef _MSC_STDINT_H_
        #if _MSC_VER < 1300
           typedef unsigned char     uint8_t;
           typedef unsigned int      uint32_t;
        #else
           typedef unsigned __int8   uint8_t;
           typedef unsigned __int32  uint32_t;
        #endif
    #endif
#else
   #include <stdint.h>
#endif
#ifndef CYTHON_FALLTHROUGH
  #if defined(__cplusplus) && __cplusplus >= 201103L
    #if __has_cpp_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH [[fallthrough]]
    #elif __has_cpp_attribute(clang::fallthrough)
      #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
    #elif __has_cpp_attribute(gnu::fallthrough)
      #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
    #endif
  #endif
  #ifndef CYTHON_FALLTHROUGH
    #if __has_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
    #else
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
  #if defined(__clang__ ) && defined(__apple_build_version__)
    #if __apple_build_version__ < 7000000
      #undef  CYTHON_FALLTHROUGH
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
#endif

#ifndef CYTHON_INLINE
  #if defined(__clang__)
    #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
  #elif defined(__GNUC__)
    #define CYTHON_INLINE __inline__
  #elif defined(_MSC_VER)
    #define CYTHON_INLINE __inline
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_INLINE inline
  #else
    #define CYTHON_INLINE
  #endif
#endif

#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
  #define Py_OptimizeFlag 0
#endif
#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#if PY_MAJOR_VERSION < 3
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
  #define __Pyx_DefaultClassType PyClass_Type
#else
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
  #define __Pyx_DefaultClassType PyType_Type
#if PY_VERSION_HEX >= 0x030B00A1
    static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f,
                                                    PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                                    PyObject *fv, PyObject *cell, PyObject* fn,
                                                    PyObject *name, int fline, PyObject *lnos) {
        PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL;
        PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL;
        const char *fn_cstr=NULL;
        const char *name_cstr=NULL;
        PyCodeObject* co=NULL;
        PyObject *type, *value, *traceback;
        PyErr_Fetch(&type, &value, &traceback);
        if (!(kwds=PyDict_New())) goto end;
        if (!(argcount=PyLong_FromLong(a))) goto end;
        if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end;
        if (!(posonlyargcount=PyLong_FromLong(0))) goto end;
        if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end;
        if (!(kwonlyargcount=PyLong_FromLong(k))) goto end;
        if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end;
        if (!(nlocals=PyLong_FromLong(l))) goto end;
        if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end;
        if (!(stacksize=PyLong_FromLong(s))) goto end;
        if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end;
        if (!(flags=PyLong_FromLong(f))) goto end;
        if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end;
        if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end;
        if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end;
        if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end;
        if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end;
        if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too;
        if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here
        if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too;
        Py_XDECREF((PyObject*)co);
        co = (PyCodeObject*)call_result;
        call_result = NULL;
        if (0) {
            cleanup_code_too:
            Py_XDECREF((PyObject*)co);
            co = NULL;
        }
        end:
        Py_XDECREF(kwds);
        Py_XDECREF(argcount);
        Py_XDECREF(posonlyargcount);
        Py_XDECREF(kwonlyargcount);
        Py_XDECREF(nlocals);
        Py_XDECREF(stacksize);
        Py_XDECREF(replace);
        Py_XDECREF(call_result);
        Py_XDECREF(empty);
        if (type) {
            PyErr_Restore(type, value, traceback);
        }
        return co;
    }
#else
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#endif
  #define __Pyx_DefaultClassType PyType_Type
#endif
#ifndef Py_TPFLAGS_CHECKTYPES
  #define Py_TPFLAGS_CHECKTYPES 0
#endif
#ifndef Py_TPFLAGS_HAVE_INDEX
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#ifndef Py_TPFLAGS_HAVE_NEWBUFFER
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#ifndef Py_TPFLAGS_HAVE_FINALIZE
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#ifndef METH_STACKLESS
  #define METH_STACKLESS 0
#endif
#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
  #ifndef METH_FASTCALL
     #define METH_FASTCALL 0x80
  #endif
  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
                                                          Py_ssize_t nargs, PyObject *kwnames);
#else
  #define __Pyx_PyCFunctionFast _PyCFunctionFast
  #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
#endif
#if CYTHON_FAST_PYCCALL
#define __Pyx_PyFastCFunction_Check(func)\
    ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)))))
#else
#define __Pyx_PyFastCFunction_Check(func) 0
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
  #define PyObject_Malloc(s)   PyMem_Malloc(s)
  #define PyObject_Free(p)     PyMem_Free(p)
  #define PyObject_Realloc(p)  PyMem_Realloc(p)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1
  #define PyMem_RawMalloc(n)           PyMem_Malloc(n)
  #define PyMem_RawRealloc(p, n)       PyMem_Realloc(p, n)
  #define PyMem_RawFree(p)             PyMem_Free(p)
#endif
#if CYTHON_COMPILING_IN_PYSTON
  #define __Pyx_PyCode_HasFreeVars(co)  PyCode_HasFreeVars(co)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno)
#else
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
#endif
#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#elif PY_VERSION_HEX >= 0x03060000
  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
#elif PY_VERSION_HEX >= 0x03000000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#else
  #define __Pyx_PyThreadState_Current _PyThreadState_Current
#endif
#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
#include "pythread.h"
#define Py_tss_NEEDS_INIT 0
typedef int Py_tss_t;
static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
  *key = PyThread_create_key();
  return 0;
}
static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
  Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
  *key = Py_tss_NEEDS_INIT;
  return key;
}
static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
  PyObject_Free(key);
}
static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
  return *key != Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
  PyThread_delete_key(*key);
  *key = Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
  return PyThread_set_key_value(*key, value);
}
static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
  return PyThread_get_key_value(*key);
}
#endif
#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
#define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
#else
#define __Pyx_PyDict_NewPresized(n)  PyDict_New()
#endif
#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#else
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS
#define __Pyx_PyDict_GetItemStr(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
#else
#define __Pyx_PyDict_GetItemStr(dict, name)  PyDict_GetItem(dict, name)
#endif
#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
  #define CYTHON_PEP393_ENABLED 1
  #if defined(PyUnicode_IS_READY)
  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                              0 : _PyUnicode_Ready((PyObject *)(op)))
  #else
  #define __Pyx_PyUnicode_READY(op)       (0)
  #endif
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, ch)
  #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
  #else
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
  #endif
  #else
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
  #endif
#else
  #define CYTHON_PEP393_ENABLED 0
  #define PyUnicode_1BYTE_KIND  1
  #define PyUnicode_2BYTE_KIND  2
  #define PyUnicode_4BYTE_KIND  4
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111)
  #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  (((void)(k)), ((Py_UNICODE*)d)[i] = ch)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_SIZE(u))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
  #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check)
  #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format)
  #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
#endif
#define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
#else
  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
#endif
#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
  #define PyObject_ASCII(o)            PyObject_Repr(o)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBaseString_Type            PyUnicode_Type
  #define PyStringObject               PyUnicodeObject
  #define PyString_Type                PyUnicode_Type
  #define PyString_Check               PyUnicode_Check
  #define PyString_CheckExact          PyUnicode_CheckExact
#ifndef PyObject_Unicode
  #define PyObject_Unicode             PyObject_Str
#endif
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
#else
  #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
#endif
#if PY_VERSION_HEX >= 0x030900A4
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
#else
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
#endif
#if CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
#else
  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyIntObject                  PyLongObject
  #define PyInt_Type                   PyLong_Type
  #define PyInt_Check(op)              PyLong_Check(op)
  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
  #define PyInt_FromString             PyLong_FromString
  #define PyInt_FromUnicode            PyLong_FromUnicode
  #define PyInt_FromLong               PyLong_FromLong
  #define PyInt_FromSize_t             PyLong_FromSize_t
  #define PyInt_FromSsize_t            PyLong_FromSsize_t
  #define PyInt_AsLong                 PyLong_AsLong
  #define PyInt_AS_LONG                PyLong_AS_LONG
  #define PyInt_AsSsize_t              PyLong_AsSsize_t
  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
  #define PyNumber_Int                 PyNumber_Long
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBoolObject                 PyLongObject
#endif
#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
  #ifndef PyUnicode_InternFromString
    #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
  #endif
#endif
#if PY_VERSION_HEX < 0x030200A4
  typedef long Py_hash_t;
  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsHash_t
#else
  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsSsize_t
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
#else
  #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
#endif
#if CYTHON_USE_ASYNC_SLOTS
  #if PY_VERSION_HEX >= 0x030500B1
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
    #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
  #else
    #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
  #endif
#else
  #define __Pyx_PyType_AsAsync(obj) NULL
#endif
#ifndef __Pyx_PyAsyncMethodsStruct
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
    } __Pyx_PyAsyncMethodsStruct;
#endif

#if defined(WIN32) || defined(MS_WINDOWS)
  #define _USE_MATH_DEFINES
#endif
#include <math.h>
#ifdef NAN
#define __PYX_NAN() ((float) NAN)
#else
static CYTHON_INLINE float __PYX_NAN() {
  float value;
  memset(&value, 0xFF, sizeof(value));
  return value;
}
#endif
#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
#define __Pyx_truncl trunc
#else
#define __Pyx_truncl truncl
#endif

#define __PYX_MARK_ERR_POS(f_index, lineno) \
    { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; }
#define __PYX_ERR(f_index, lineno, Ln_error) \
    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }

#ifndef __PYX_EXTERN_C
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#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 <string.h>
#include <stdio.h>
#include "numpy/arrayobject.h"
#include "numpy/ndarrayobject.h"
#include "numpy/ndarraytypes.h"
#include "numpy/arrayscalars.h"
#include "numpy/ufuncobject.h"

    /* NumPy API declarations from "numpy/__init__.pxd" */
    
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
#define CYTHON_WITHOUT_ASSERTIONS
#endif

typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;

#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#define __Pyx_uchar_cast(c) ((unsigned char)c)
#define __Pyx_long_cast(x) ((long)x)
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    (sizeof(type) < sizeof(Py_ssize_t))  ||\
    (sizeof(type) > sizeof(Py_ssize_t) &&\
          likely(v < (type)PY_SSIZE_T_MAX ||\
                 v == (type)PY_SSIZE_T_MAX)  &&\
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
                                v == (type)PY_SSIZE_T_MIN)))  ||\
    (sizeof(type) == sizeof(Py_ssize_t) &&\
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
                               v == (type)PY_SSIZE_T_MAX)))  )
static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
    return (size_t) i < (size_t) limit;
}
#if defined (__cplusplus) && __cplusplus >= 201103L
    #include <cstdlib>
    #define __Pyx_sst_abs(value) std::abs(value)
#elif SIZEOF_INT >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) abs(value)
#elif SIZEOF_LONG >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) labs(value)
#elif defined (_MSC_VER)
    #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define __Pyx_sst_abs(value) llabs(value)
#elif defined (__GNUC__)
    #define __Pyx_sst_abs(value) __builtin_llabs(value)
#else
    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if PY_MAJOR_VERSION < 3
    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#else
    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
#endif
#define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyObject_AsWritableString(s)    ((char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
    const Py_UNICODE *u_end = u;
    while (*u_end++) ;
    return (size_t)(u_end - u - 1);
}
#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
#define __Pyx_PySequence_Tuple(obj)\
    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
#if CYTHON_ASSUME_SAFE_MACROS
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#else
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#endif
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#else
#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
#endif
#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x))
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
static int __Pyx_sys_getdefaultencoding_not_ascii;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    PyObject* ascii_chars_u = NULL;
    PyObject* ascii_chars_b = NULL;
    const char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    if (strcmp(default_encoding_c, "ascii") == 0) {
        __Pyx_sys_getdefaultencoding_not_ascii = 0;
    } else {
        char ascii_chars[128];
        int c;
        for (c = 0; c < 128; c++) {
            ascii_chars[c] = c;
        }
        __Pyx_sys_getdefaultencoding_not_ascii = 1;
        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
        if (!ascii_chars_u) goto bad;
        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
        if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
            PyErr_Format(
                PyExc_ValueError,
                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
                default_encoding_c);
            goto bad;
        }
        Py_DECREF(ascii_chars_u);
        Py_DECREF(ascii_chars_b);
    }
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    Py_XDECREF(ascii_chars_u);
    Py_XDECREF(ascii_chars_b);
    return -1;
}
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#else
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
static char* __PYX_DEFAULT_STRING_ENCODING;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
    if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    return -1;
}
#endif
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */
static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }

static PyObject *__pyx_m = NULL;
static PyObject *__pyx_d;
static PyObject *__pyx_b;
static PyObject *__pyx_cython_runtime = NULL;
static PyObject *__pyx_empty_tuple;
static PyObject *__pyx_empty_bytes;
static PyObject *__pyx_empty_unicode;
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * __pyx_cfilenm= __FILE__;
static const char *__pyx_filename;

/* Header.proto */
#if !defined(CYTHON_CCOMPLEX)
  #if defined(__cplusplus)
    #define CYTHON_CCOMPLEX 1
  #elif defined(_Complex_I)
    #define CYTHON_CCOMPLEX 1
  #else
    #define CYTHON_CCOMPLEX 0
  #endif
#endif
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    #include <complex>
  #else
    #include <complex.h>
  #endif
#endif
#if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)
  #undef _Complex_I
  #define _Complex_I 1.0fj
#endif


static const char *__pyx_f[] = {
  "talib/_common.pxi",
  "talib/_abstract.pxi",
  "talib/_func.pxi",
  "talib/_stream.pxi",
  "__init__.pxd",
  "talib/_ta_lib.pyx",
  "type.pxd",
};

typedef npy_int8 __pyx_t_5numpy_int8_t;

typedef npy_int16 __pyx_t_5numpy_int16_t;

typedef npy_int32 __pyx_t_5numpy_int32_t;

typedef npy_int64 __pyx_t_5numpy_int64_t;

typedef npy_uint8 __pyx_t_5numpy_uint8_t;

typedef npy_uint16 __pyx_t_5numpy_uint16_t;

typedef npy_uint32 __pyx_t_5numpy_uint32_t;

typedef npy_uint64 __pyx_t_5numpy_uint64_t;

typedef npy_float32 __pyx_t_5numpy_float32_t;

typedef npy_float64 __pyx_t_5numpy_float64_t;

typedef npy_long __pyx_t_5numpy_int_t;

typedef npy_longlong __pyx_t_5numpy_long_t;

typedef npy_longlong __pyx_t_5numpy_longlong_t;

typedef npy_ulong __pyx_t_5numpy_uint_t;

typedef npy_ulonglong __pyx_t_5numpy_ulong_t;

typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;

typedef npy_intp __pyx_t_5numpy_intp_t;

typedef npy_uintp __pyx_t_5numpy_uintp_t;

typedef npy_double __pyx_t_5numpy_float_t;

typedef npy_double __pyx_t_5numpy_double_t;

typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
/* Declarations.proto */
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    typedef ::std::complex< float > __pyx_t_float_complex;
  #else
    typedef float _Complex __pyx_t_float_complex;
  #endif
#else
    typedef struct { float real, imag; } __pyx_t_float_complex;
#endif
static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);

/* Declarations.proto */
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    typedef ::std::complex< double > __pyx_t_double_complex;
  #else
    typedef double _Complex __pyx_t_double_complex;
  #endif
#else
    typedef struct { double real, imag; } __pyx_t_double_complex;
#endif
static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);


/*--- Type declarations ---*/

typedef npy_cfloat __pyx_t_5numpy_cfloat_t;

typedef npy_cdouble __pyx_t_5numpy_cdouble_t;

typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;

typedef npy_cdouble __pyx_t_5numpy_complex_t;

/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, int);
    void (*DECREF)(void*, PyObject*, int);
    void (*GOTREF)(void*, PyObject*, int);
    void (*GIVEREF)(void*, PyObject*, int);
    void* (*SetupContext)(const char*, int, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
#ifdef WITH_THREAD
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          if (acquire_gil) {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
              PyGILState_Release(__pyx_gilstate_save);\
          } else {\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
          }
#else
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
#endif
  #define __Pyx_RefNannyFinishContext()\
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_XDECREF(tmp);\
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_DECREF(tmp);\
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

/* PyObjectGetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

/* GetBuiltinName.proto */
static PyObject *__Pyx_GetBuiltinName(PyObject *name);

/* PyCFunctionFastCall.proto */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
#else
#define __Pyx_PyCFunction_FastCall(func, args, nargs)  (assert(0), NULL)
#endif

/* PyFunctionFastCall.proto */
#if CYTHON_FAST_PYCALL
#define __Pyx_PyFunction_FastCall(func, args, nargs)\
    __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
#else
#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs)
#endif
#define __Pyx_BUILD_ASSERT_EXPR(cond)\
    (sizeof(char [1 - 2*!(cond)]) - 1)
#ifndef Py_MEMBER_SIZE
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
#endif
#if CYTHON_FAST_PYCALL
  static size_t __pyx_pyframe_localsplus_offset = 0;
  #include "frameobject.h"
  #define __Pxy_PyFrame_Initialize_Offsets()\
    ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
     (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
  #define __Pyx_PyFrame_GetLocalsplus(frame)\
    (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
#endif // CYTHON_FAST_PYCALL
#endif

/* PyObjectCall.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

/* PyObjectCallMethO.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

/* PyObjectCallOneArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

/* PyThreadStateGet.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
#define __Pyx_PyErr_Occurred()  __pyx_tstate->curexc_type
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#define __Pyx_PyErr_Occurred()  PyErr_Occurred()
#endif

/* PyErrFetchRestore.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
#else
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#endif
#else
#define __Pyx_PyErr_Clear() PyErr_Clear()
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
#endif

/* RaiseException.proto */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);

/* RaiseArgTupleInvalid.proto */
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

/* RaiseDoubleKeywords.proto */
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

/* ParseKeywords.proto */
static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
    const char* function_name);

/* ArgTypeTest.proto */
#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
    ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\
        __Pyx__ArgTypeTest(obj, type, name, exact))
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);

/* PyDictVersioning.proto */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
    (version_var) = __PYX_GET_DICT_VERSION(dict);\
    (cache_var) = (value);
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
        (VAR) = __pyx_dict_cached_value;\
    } else {\
        (VAR) = __pyx_dict_cached_value = (LOOKUP);\
        __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
    }\
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
#else
#define __PYX_GET_DICT_VERSION(dict)  (0)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
#endif

/* GetModuleGlobalName.proto */
#if CYTHON_USE_DICT_VERSIONS
#define __Pyx_GetModuleGlobalName(var, name)  {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
        (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
        __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
}
#define __Pyx_GetModuleGlobalNameUncached(var, name)  {\
    PY_UINT64_T __pyx_dict_version;\
    PyObject *__pyx_dict_cached_value;\
    (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
}
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
#else
#define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
#endif

/* PyObjectSetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
#else
#define __Pyx_PyObject_DelAttrStr(o,n)   PyObject_DelAttr(o,n)
#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif

/* GetItemInt.proto */
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck);

/* ObjectGetItem.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key);
#else
#define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
#endif

/* PyObjectCall2Args.proto */
static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);

/* PyObjectCallNoArg.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
#else
#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
#endif

/* DictGetItem.proto */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
#define __Pyx_PyObject_Dict_GetItem(obj, name)\
    (likely(PyDict_CheckExact(obj)) ?\
     __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
#else
#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
#define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
#endif

/* RaiseTooManyValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

/* RaiseNeedMoreValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

/* IterFinish.proto */
static CYTHON_INLINE int __Pyx_IterFinish(void);

/* UnpackItemEndCheck.proto */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

/* PySequenceContains.proto */
static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
    int result = PySequence_Contains(seq, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* ListAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#endif

/* StringJoin.proto */
#if PY_MAJOR_VERSION < 3
#define __Pyx_PyString_Join __Pyx_PyBytes_Join
#define __Pyx_PyBaseString_Join(s, v) (PyUnicode_CheckExact(s) ? PyUnicode_Join(s, v) : __Pyx_PyBytes_Join(s, v))
#else
#define __Pyx_PyString_Join PyUnicode_Join
#define __Pyx_PyBaseString_Join PyUnicode_Join
#endif
#if CYTHON_COMPILING_IN_CPYTHON
    #if PY_MAJOR_VERSION < 3
    #define __Pyx_PyBytes_Join _PyString_Join
    #else
    #define __Pyx_PyBytes_Join _PyBytes_Join
    #endif
#else
static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values);
#endif

/* PyObjectGetMethod.proto */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);

/* PyObjectCallMethod0.proto */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);

/* RaiseNoneIterError.proto */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);

/* UnpackTupleError.proto */
static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index);

/* UnpackTuple2.proto */
#define __Pyx_unpack_tuple2(tuple, value1, value2, is_tuple, has_known_size, decref_tuple)\
    (likely(is_tuple || PyTuple_Check(tuple)) ?\
        (likely(has_known_size || PyTuple_GET_SIZE(tuple) == 2) ?\
            __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple) :\
            (__Pyx_UnpackTupleError(tuple, 2), -1)) :\
        __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple))
static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
    PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple);
static int __Pyx_unpack_tuple2_generic(
    PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple);

/* dict_iter.proto */
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_is_dict);
static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
                                              PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* ListCompAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len)) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
#endif

/* GetTopmostException.proto */
#if CYTHON_USE_EXC_INFO_STACK
static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
#endif

/* SaveResetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
#else
#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
#endif

/* PyErrExceptionMatches.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
#else
#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
#endif

/* GetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* SliceTupleAndList.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop);
static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop);
#else
#define __Pyx_PyList_GetSlice(seq, start, stop)   PySequence_GetSlice(seq, start, stop)
#define __Pyx_PyTuple_GetSlice(seq, start, stop)  PySequence_GetSlice(seq, start, stop)
#endif

/* PyObject_Unicode.proto */
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyObject_Unicode(obj)\
    (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj))
#else
#define __Pyx_PyObject_Unicode(obj)\
    (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Unicode(obj))
#endif

/* py_dict_keys.proto */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d);

/* UnpackUnboundCMethod.proto */
typedef struct {
    PyObject *type;
    PyObject **method_name;
    PyCFunction func;
    PyObject *method;
    int flag;
} __Pyx_CachedCFunction;

/* CallUnboundCMethod0.proto */
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CallUnboundCMethod0(cfunc, self)\
    (likely((cfunc)->func) ?\
        (likely((cfunc)->flag == METH_NOARGS) ?  (*((cfunc)->func))(self, NULL) :\
         (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\
            (PY_VERSION_HEX >= 0x030700A0 ?\
                (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\
                (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\
          (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\
            (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\
            (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ?  ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\
               ((cfunc)->flag == METH_VARARGS ?  (*((cfunc)->func))(self, __pyx_empty_tuple) :\
               __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\
        __Pyx__CallUnboundCMethod0(cfunc, self))
#else
#define __Pyx_CallUnboundCMethod0(cfunc, self)  __Pyx__CallUnboundCMethod0(cfunc, self)
#endif

/* PyNumberPow2.proto */
#define __Pyx_PyNumber_InPlacePowerOf2(a, b, c) __Pyx__PyNumber_PowerOf2(a, b, c, 1)
#define __Pyx_PyNumber_PowerOf2(a, b, c) __Pyx__PyNumber_PowerOf2(a, b, c, 0)
static PyObject* __Pyx__PyNumber_PowerOf2(PyObject *two, PyObject *exp, PyObject *none, int inplace);

/* SliceObject.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
        PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
        int has_cstart, int has_cstop, int wraparound);

/* PyIntCompare.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, long inplace);

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_RemainderObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_RemainderObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceRemainder(op1, op2) : PyNumber_Remainder(op1, op2))
#endif

/* IncludeStringH.proto */
#include <string.h>

/* BytesEquals.proto */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

/* UnicodeEquals.proto */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

/* StrEquals.proto */
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
#else
#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
#endif

/* SetItemInt.proto */
#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
               __Pyx_SetItemInt_Generic(o, to_py_func(i), v)))
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v);
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v,
                                               int is_list, int wraparound, int boundscheck);

/* WriteUnraisableException.proto */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil);

/* TypeImport.proto */
#ifndef __PYX_HAVE_RT_ImportType_proto
#define __PYX_HAVE_RT_ImportType_proto
enum __Pyx_ImportType_CheckSize {
   __Pyx_ImportType_CheckSize_Error = 0,
   __Pyx_ImportType_CheckSize_Warn = 1,
   __Pyx_ImportType_CheckSize_Ignore = 2
};
static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size);
#endif

/* CalculateMetaclass.proto */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);

/* SetNameInClass.proto */
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
#elif CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))
#else
#define __Pyx_SetNameInClass(ns, name, value)  PyObject_SetItem(ns, name, value)
#endif

/* FetchCommonType.proto */
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);

/* CythonFunctionShared.proto */
#define __Pyx_CyFunction_USED 1
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#define __Pyx_CyFunction_GetClassObj(f)\
    (((__pyx_CyFunctionObject *) (f))->func_classobj)
#define __Pyx_CyFunction_Defaults(type, f)\
    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
typedef struct {
    PyCFunctionObject func;
#if PY_VERSION_HEX < 0x030500A0
    PyObject *func_weakreflist;
#endif
    PyObject *func_dict;
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
    PyObject *func_classobj;
    void *defaults;
    int defaults_pyobjects;
    size_t defaults_size;  // used by FusedFunction for copying defaults
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
} __pyx_CyFunctionObject;
static PyTypeObject *__pyx_CyFunctionType = 0;
#define __Pyx_CyFunction_Check(obj)  (__Pyx_TypeCheck(obj, __pyx_CyFunctionType))
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *self,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
                                                         size_t size,
                                                         int pyobjects);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
                                                            PyObject *tuple);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
                                                             PyObject *dict);
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
                                                              PyObject *dict);
static int __pyx_CyFunction_init(void);

/* CythonFunction.proto */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);

/* Py3ClassCreate.proto */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
                                           PyObject *mkw, PyObject *modname, PyObject *doc);
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
                                      PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);

/* Import.proto */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);

/* ImportFrom.proto */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

/* PyObjectCallMethod1.proto */
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);

/* append.proto */
static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x);

/* CLineInTraceback.proto */
#ifdef CYTHON_CLINE_IN_TRACEBACK
#define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
#else
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
#endif

/* CodeObjectCache.proto */
typedef struct {
    PyCodeObject* code_object;
    int code_line;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
};
static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static PyCodeObject *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);

/* AddTraceback.proto */
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

/* GCCDiagnostics.proto */
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
#define __Pyx_HAS_GCC_DIAGNOSTIC
#endif

/* RealImag.proto */
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    #define __Pyx_CREAL(z) ((z).real())
    #define __Pyx_CIMAG(z) ((z).imag())
  #else
    #define __Pyx_CREAL(z) (__real__(z))
    #define __Pyx_CIMAG(z) (__imag__(z))
  #endif
#else
    #define __Pyx_CREAL(z) ((z).real)
    #define __Pyx_CIMAG(z) ((z).imag)
#endif
#if defined(__cplusplus) && CYTHON_CCOMPLEX\
        && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
    #define __Pyx_SET_CREAL(z,x) ((z).real(x))
    #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
#else
    #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
    #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
#endif

/* Arithmetic.proto */
#if CYTHON_CCOMPLEX
    #define __Pyx_c_eq_float(a, b)   ((a)==(b))
    #define __Pyx_c_sum_float(a, b)  ((a)+(b))
    #define __Pyx_c_diff_float(a, b) ((a)-(b))
    #define __Pyx_c_prod_float(a, b) ((a)*(b))
    #define __Pyx_c_quot_float(a, b) ((a)/(b))
    #define __Pyx_c_neg_float(a)     (-(a))
  #ifdef __cplusplus
    #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
    #define __Pyx_c_conj_float(z)    (::std::conj(z))
    #if 1
        #define __Pyx_c_abs_float(z)     (::std::abs(z))
        #define __Pyx_c_pow_float(a, b)  (::std::pow(a, b))
    #endif
  #else
    #define __Pyx_c_is_zero_float(z) ((z)==0)
    #define __Pyx_c_conj_float(z)    (conjf(z))
    #if 1
        #define __Pyx_c_abs_float(z)     (cabsf(z))
        #define __Pyx_c_pow_float(a, b)  (cpowf(a, b))
    #endif
 #endif
#else
    static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
    static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
    #if 1
        static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
        static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
    #endif
#endif

/* Arithmetic.proto */
#if CYTHON_CCOMPLEX
    #define __Pyx_c_eq_double(a, b)   ((a)==(b))
    #define __Pyx_c_sum_double(a, b)  ((a)+(b))
    #define __Pyx_c_diff_double(a, b) ((a)-(b))
    #define __Pyx_c_prod_double(a, b) ((a)*(b))
    #define __Pyx_c_quot_double(a, b) ((a)/(b))
    #define __Pyx_c_neg_double(a)     (-(a))
  #ifdef __cplusplus
    #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
    #define __Pyx_c_conj_double(z)    (::std::conj(z))
    #if 1
        #define __Pyx_c_abs_double(z)     (::std::abs(z))
        #define __Pyx_c_pow_double(a, b)  (::std::pow(a, b))
    #endif
  #else
    #define __Pyx_c_is_zero_double(z) ((z)==0)
    #define __Pyx_c_conj_double(z)    (conj(z))
    #if 1
        #define __Pyx_c_abs_double(z)     (cabs(z))
        #define __Pyx_c_pow_double(a, b)  (cpow(a, b))
    #endif
 #endif
#else
    static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
    static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
    #if 1
        static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
        static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
    #endif
#endif

/* CIntFromPy.proto */
static CYTHON_INLINE TA_RetCode __Pyx_PyInt_As_TA_RetCode(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_RetCode(TA_RetCode value);

/* CIntFromPy.proto */
static CYTHON_INLINE TA_FuncUnstId __Pyx_PyInt_As_TA_FuncUnstId(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value);

/* CIntFromPy.proto */
static CYTHON_INLINE TA_Compatibility __Pyx_PyInt_As_TA_Compatibility(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);

/* CIntFromPy.proto */
static CYTHON_INLINE TA_CandleSettingType __Pyx_PyInt_As_TA_CandleSettingType(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE TA_RangeType __Pyx_PyInt_As_TA_RangeType(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInputParameterType value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_FuncFlags(TA_FuncFlags value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_InputFlags(TA_InputFlags value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_OutputFlags(TA_OutputFlags value);

/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);

/* FastTypeChecks.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
#else
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
#endif
#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)

/* CheckBinaryVersion.proto */
static int __Pyx_check_binary_version(void);

/* InitStrings.proto */
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);


/* Module declarations from 'cpython.buffer' */

/* Module declarations from 'libc.string' */

/* Module declarations from 'libc.stdio' */

/* Module declarations from '__builtin__' */

/* Module declarations from 'cpython.type' */
static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;

/* Module declarations from 'cpython' */

/* Module declarations from 'cpython.object' */

/* Module declarations from 'cpython.ref' */

/* Module declarations from 'cpython.mem' */

/* Module declarations from 'numpy' */

/* Module declarations from 'numpy' */
static PyTypeObject *__pyx_ptype_5numpy_dtype = 0;
static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0;
static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0;
static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0;
static PyTypeObject *__pyx_ptype_5numpy_generic = 0;
static PyTypeObject *__pyx_ptype_5numpy_number = 0;
static PyTypeObject *__pyx_ptype_5numpy_integer = 0;
static PyTypeObject *__pyx_ptype_5numpy_signedinteger = 0;
static PyTypeObject *__pyx_ptype_5numpy_unsignedinteger = 0;
static PyTypeObject *__pyx_ptype_5numpy_inexact = 0;
static PyTypeObject *__pyx_ptype_5numpy_floating = 0;
static PyTypeObject *__pyx_ptype_5numpy_complexfloating = 0;
static PyTypeObject *__pyx_ptype_5numpy_flexible = 0;
static PyTypeObject *__pyx_ptype_5numpy_character = 0;
static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0;
static CYTHON_INLINE int __pyx_f_5numpy_import_array(void); /*proto*/

/* Module declarations from 'talib._ta_lib' */
static double __pyx_v_5talib_7_ta_lib_NaN;
static PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *, TA_RetCode, int __pyx_skip_dispatch); /*proto*/
static PyArrayObject *__pyx_f_5talib_7_ta_lib_check_array(PyArrayObject *); /*proto*/
static npy_intp __pyx_f_5talib_7_ta_lib_check_length2(PyArrayObject *, PyArrayObject *); /*proto*/
static npy_intp __pyx_f_5talib_7_ta_lib_check_length3(PyArrayObject *, PyArrayObject *, PyArrayObject *); /*proto*/
static npy_intp __pyx_f_5talib_7_ta_lib_check_length4(PyArrayObject *, PyArrayObject *, PyArrayObject *, PyArrayObject *); /*proto*/
static npy_int __pyx_f_5talib_7_ta_lib_check_begidx1(npy_intp, double *); /*proto*/
static npy_int __pyx_f_5talib_7_ta_lib_check_begidx2(npy_intp, double *, double *); /*proto*/
static npy_int __pyx_f_5talib_7_ta_lib_check_begidx3(npy_intp, double *, double *, double *); /*proto*/
static npy_int __pyx_f_5talib_7_ta_lib_check_begidx4(npy_intp, double *, double *, double *, double *); /*proto*/
static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_double_array(npy_intp, int); /*proto*/
static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp, int); /*proto*/
static TA_FuncHandle *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *); /*proto*/
static TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *); /*proto*/
static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *); /*proto*/
static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder *, int, int); /*proto*/
static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *, int, int); /*proto*/
static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *); /*proto*/
#define __Pyx_MODULE_NAME "talib._ta_lib"
extern int __pyx_module_is_main_talib___ta_lib;
int __pyx_module_is_main_talib___ta_lib = 0;

/* Implementation of 'talib._ta_lib' */
static PyObject *__pyx_builtin_object;
static PyObject *__pyx_builtin_range;
static PyObject *__pyx_builtin_enumerate;
static PyObject *__pyx_builtin_ImportError;
static PyObject *__pyx_builtin_property;
static PyObject *__pyx_builtin_xrange;
static PyObject *__pyx_builtin_IndexError;
static PyObject *__pyx_builtin_TypeError;
static PyObject *__pyx_builtin_min;
static PyObject *__pyx_builtin_max;
static const char __pyx_k_3[] = "3";
static const char __pyx_k_b[] = "b";
static const char __pyx_k_i[] = "i";
static const char __pyx_k_n[] = "n";
static const char __pyx_k_s[] = "s";
static const char __pyx_k_AD[] = "AD";
static const char __pyx_k_DX[] = "DX";
static const char __pyx_k_LN[] = "LN";
static const char __pyx_k_MA[] = "MA";
static const char __pyx_k_T3[] = "T3";
static const char __pyx_k__5[] = "";
static const char __pyx_k__6[] = ", ";
static const char __pyx_k__8[] = "(";
static const char __pyx_k__9[] = " ";
static const char __pyx_k_id[] = "id";
static const char __pyx_k_in[] = "in";
static const char __pyx_k_ADD[] = "ADD";
static const char __pyx_k_ADX[] = "ADX";
static const char __pyx_k_ALL[] = "ALL";
static const char __pyx_k_APO[] = "APO";
static const char __pyx_k_ATR[] = "ATR";
static const char __pyx_k_BOP[] = "BOP";
static const char __pyx_k_CCI[] = "CCI";
static const char __pyx_k_CMO[] = "CMO";
static const char __pyx_k_COS[] = "COS";
static const char __pyx_k_DIV[] = "DIV";
static const char __pyx_k_Dot[] = "Dot";
static const char __pyx_k_EMA[] = "EMA";
static const char __pyx_k_EXP[] = "EXP";
static const char __pyx_k_Far[] = "Far";
static const char __pyx_k_MAX[] = "MAX";
static const char __pyx_k_MFI[] = "MFI";
static const char __pyx_k_MIN[] = "MIN";
static const char __pyx_k_MOM[] = "MOM";
static const char __pyx_k_OBV[] = "OBV";
static const char __pyx_k_PPO[] = "PPO";
static const char __pyx_k_ROC[] = "ROC";
static const char __pyx_k_RSI[] = "RSI";
static const char __pyx_k_SAR[] = "SAR";
static const char __pyx_k_SIN[] = "SIN";
static const char __pyx_k_SMA[] = "SMA";
static const char __pyx_k_SUB[] = "SUB";
static const char __pyx_k_SUM[] = "SUM";
static const char __pyx_k_TAN[] = "TAN";
static const char __pyx_k_TSF[] = "TSF";
static const char __pyx_k_VAR[] = "VAR";
static const char __pyx_k_WMA[] = "WMA";
static const char __pyx_k__10[] = ")\n";
static const char __pyx_k__11[] = "\n";
static const char __pyx_k_all[] = "__all__";
static const char __pyx_k_arg[] = "arg";
static const char __pyx_k_doc[] = "__doc__";
static const char __pyx_k_idx[] = "idx";
static const char __pyx_k_key[] = "key";
static const char __pyx_k_log[] = "log";
static const char __pyx_k_low[] = "low";
static const char __pyx_k_max[] = "max";
static const char __pyx_k_min[] = "min";
static const char __pyx_k_msg[] = "msg";
static const char __pyx_k_nan[] = "nan";
static const char __pyx_k_out[] = "out";
static const char __pyx_k_pop[] = "pop";
static const char __pyx_k_ret[] = "ret";
static const char __pyx_k_run[] = "run";
static const char __pyx_k_s_2[] = "%s";
static const char __pyx_k_s_3[] = "(%s)";
static const char __pyx_k_s_4[] = "    %s";
static const char __pyx_k_s_s[] = "    %s: %s";
static const char __pyx_k_str[] = "__str__";
static const char __pyx_k_sys[] = "sys";
static const char __pyx_k_ACOS[] = "ACOS";
static const char __pyx_k_ADXR[] = "ADXR";
static const char __pyx_k_ASIN[] = "ASIN";
static const char __pyx_k_ATAN[] = "ATAN";
static const char __pyx_k_BETA[] = "BETA";
static const char __pyx_k_CEIL[] = "CEIL";
static const char __pyx_k_COSH[] = "COSH";
static const char __pyx_k_DEMA[] = "DEMA";
static const char __pyx_k_KAMA[] = "KAMA";
static const char __pyx_k_Line[] = "Line";
static const char __pyx_k_MACD[] = "MACD";
static const char __pyx_k_MAMA[] = "MAMA";
static const char __pyx_k_MAVP[] = "MAVP";
static const char __pyx_k_MULT[] = "MULT";
static const char __pyx_k_NATR[] = "NATR";
static const char __pyx_k_NONE[] = "NONE";
static const char __pyx_k_Near[] = "Near";
static const char __pyx_k_ROCP[] = "ROCP";
static const char __pyx_k_ROCR[] = "ROCR";
static const char __pyx_k_SINH[] = "SINH";
static const char __pyx_k_SQRT[] = "SQRT";
static const char __pyx_k_TANH[] = "TANH";
static const char __pyx_k_TEMA[] = "TEMA";
static const char __pyx_k_TRIX[] = "TRIX";
static const char __pyx_k_args[] = "args";
static const char __pyx_k_call[] = "__call__";
static const char __pyx_k_copy[] = "copy";
static const char __pyx_k_docs[] = "docs";
static const char __pyx_k_flag[] = "flag";
static const char __pyx_k_help[] = "help";
static const char __pyx_k_high[] = "high";
static const char __pyx_k_info[] = "info";
static const char __pyx_k_init[] = "__init__";
static const char __pyx_k_join[] = "join";
static const char __pyx_k_keys[] = "keys";
static const char __pyx_k_main[] = "__main__";
static const char __pyx_k_math[] = "math";
static const char __pyx_k_name[] = "name";
static const char __pyx_k_open[] = "open";
static const char __pyx_k_real[] = "real";
static const char __pyx_k_repr[] = "__repr__";
static const char __pyx_k_self[] = "self";
static const char __pyx_k_test[] = "__test__";
static const char __pyx_k_type[] = "type_";
static const char __pyx_k_ADOSC[] = "ADOSC";
static const char __pyx_k_AROON[] = "AROON";
static const char __pyx_k_Equal[] = "Equal";
static const char __pyx_k_FLOOR[] = "FLOOR";
static const char __pyx_k_LOG10[] = "LOG10";
static const char __pyx_k_STOCH[] = "STOCH";
static const char __pyx_k_TA_AD[] = "TA_AD";
static const char __pyx_k_TA_DX[] = "TA_DX";
static const char __pyx_k_TA_LN[] = "TA_LN";
static const char __pyx_k_TA_MA[] = "TA_MA";
static const char __pyx_k_TA_T3[] = "TA_T3";
static const char __pyx_k_TRIMA[] = "TRIMA";
static const char __pyx_k_WILLR[] = "WILLR";
static const char __pyx_k_ascii[] = "ascii";
static const char __pyx_k_clone[] = "clone";
static const char __pyx_k_close[] = "close";
static const char __pyx_k_empty[] = "empty";
static const char __pyx_k_flags[] = "flags";
static const char __pyx_k_group[] = "group";
static const char __pyx_k_index[] = "index";
static const char __pyx_k_items[] = "items";
static const char __pyx_k_lower[] = "lower";
static const char __pyx_k_nbdev[] = "nbdev";
static const char __pyx_k_numpy[] = "numpy";
static const char __pyx_k_optIn[] = "optIn";
static const char __pyx_k_param[] = "param";
static const char __pyx_k_price[] = "price";
static const char __pyx_k_range[] = "range";
static const char __pyx_k_real0[] = "real0";
static const char __pyx_k_real1[] = "real1";
static const char __pyx_k_s_s_2[] = "[%s=%s]";
static const char __pyx_k_table[] = "table";
static const char __pyx_k_upper[] = "upper";
static const char __pyx_k_value[] = "value";
static const char __pyx_k_BBANDS[] = "BBANDS";
static const char __pyx_k_CORREL[] = "CORREL";
static const char __pyx_k_Inputs[] = "Inputs:";
static const char __pyx_k_MINMAX[] = "MINMAX";
static const char __pyx_k_SAREXT[] = "SAREXT";
static const char __pyx_k_STDDEV[] = "STDDEV";
static const char __pyx_k_STOCHF[] = "STOCHF";
static const char __pyx_k_Series[] = "Series";
static const char __pyx_k_TA_ADD[] = "TA_ADD";
static const char __pyx_k_TA_ADX[] = "TA_ADX";
static const char __pyx_k_TA_APO[] = "TA_APO";
static const char __pyx_k_TA_ATR[] = "TA_ATR";
static const char __pyx_k_TA_BOP[] = "TA_BOP";
static const char __pyx_k_TA_CCI[] = "TA_CCI";
static const char __pyx_k_TA_CMO[] = "TA_CMO";
static const char __pyx_k_TA_COS[] = "TA_COS";
static const char __pyx_k_TA_DIV[] = "TA_DIV";
static const char __pyx_k_TA_EMA[] = "TA_EMA";
static const char __pyx_k_TA_EXP[] = "TA_EXP";
static const char __pyx_k_TA_MAX[] = "TA_MAX";
static const char __pyx_k_TA_MFI[] = "TA_MFI";
static const char __pyx_k_TA_MIN[] = "TA_MIN";
static const char __pyx_k_TA_MOM[] = "TA_MOM";
static const char __pyx_k_TA_OBV[] = "TA_OBV";
static const char __pyx_k_TA_PPO[] = "TA_PPO";
static const char __pyx_k_TA_ROC[] = "TA_ROC";
static const char __pyx_k_TA_RSI[] = "TA_RSI";
static const char __pyx_k_TA_SAR[] = "TA_SAR";
static const char __pyx_k_TA_SIN[] = "TA_SIN";
static const char __pyx_k_TA_SMA[] = "TA_SMA";
static const char __pyx_k_TA_SUB[] = "TA_SUB";
static const char __pyx_k_TA_SUM[] = "TA_SUM";
static const char __pyx_k_TA_TAN[] = "TA_TAN";
static const char __pyx_k_TA_TSF[] = "TA_TSF";
static const char __pyx_k_TA_VAR[] = "TA_VAR";
static const char __pyx_k_TA_WMA[] = "TA_WMA";
static const char __pyx_k_TRANGE[] = "TRANGE";
static const char __pyx_k_ULTOSC[] = "ULTOSC";
static const char __pyx_k_append[] = "append";
static const char __pyx_k_astype[] = "astype";
static const char __pyx_k_begidx[] = "begidx";
static const char __pyx_k_decode[] = "decode";
static const char __pyx_k_endidx[] = "endidx";
static const char __pyx_k_factor[] = "factor";
static const char __pyx_k_groups[] = "groups";
static const char __pyx_k_holder[] = "holder";
static const char __pyx_k_import[] = "__import__";
static const char __pyx_k_kwargs[] = "kwargs";
static const char __pyx_k_length[] = "length";
static const char __pyx_k_lookup[] = "_lookup";
static const char __pyx_k_matype[] = "matype";
static const char __pyx_k_module[] = "__module__";
static const char __pyx_k_name_2[] = "__name__";
static const char __pyx_k_object[] = "object";
static const char __pyx_k_outmax[] = "outmax";
static const char __pyx_k_outmin[] = "outmin";
static const char __pyx_k_output[] = "output";
static const char __pyx_k_pandas[] = "pandas";
static const char __pyx_k_params[] = "params";
static const char __pyx_k_period[] = "period";
static const char __pyx_k_polars[] = "polars";
static const char __pyx_k_price0[] = "price0";
static const char __pyx_k_price1[] = "price1";
static const char __pyx_k_prices[] = "prices";
static const char __pyx_k_series[] = "series";
static const char __pyx_k_type_2[] = "type";
static const char __pyx_k_update[] = "update";
static const char __pyx_k_values[] = "values";
static const char __pyx_k_volume[] = "volume";
static const char __pyx_k_xrange[] = "xrange";
static const char __pyx_k_CDLDOJI[] = "CDLDOJI";
static const char __pyx_k_HT_SINE[] = "HT_SINE";
static const char __pyx_k_HighLow[] = "HighLow";
static const char __pyx_k_MACDEXT[] = "MACDEXT";
static const char __pyx_k_MACDFIX[] = "MACDFIX";
static const char __pyx_k_MA_Type[] = "MA_Type";
static const char __pyx_k_Outputs[] = "Outputs:";
static const char __pyx_k_PLUS_DI[] = "PLUS_DI";
static const char __pyx_k_PLUS_DM[] = "PLUS_DM";
static const char __pyx_k_ROCR100[] = "ROCR100";
static const char __pyx_k_Shadows[] = "Shadows";
static const char __pyx_k_TA_ACOS[] = "TA_ACOS";
static const char __pyx_k_TA_ADXR[] = "TA_ADXR";
static const char __pyx_k_TA_ASIN[] = "TA_ASIN";
static const char __pyx_k_TA_ATAN[] = "TA_ATAN";
static const char __pyx_k_TA_BETA[] = "TA_BETA";
static const char __pyx_k_TA_CEIL[] = "TA_CEIL";
static const char __pyx_k_TA_COSH[] = "TA_COSH";
static const char __pyx_k_TA_DEMA[] = "TA_DEMA";
static const char __pyx_k_TA_KAMA[] = "TA_KAMA";
static const char __pyx_k_TA_MACD[] = "TA_MACD";
static const char __pyx_k_TA_MAMA[] = "TA_MAMA";
static const char __pyx_k_TA_MAVP[] = "TA_MAVP";
static const char __pyx_k_TA_MULT[] = "TA_MULT";
static const char __pyx_k_TA_NATR[] = "TA_NATR";
static const char __pyx_k_TA_ROCP[] = "TA_ROCP";
static const char __pyx_k_TA_ROCR[] = "TA_ROCR";
static const char __pyx_k_TA_SINH[] = "TA_SINH";
static const char __pyx_k_TA_SQRT[] = "TA_SQRT";
static const char __pyx_k_TA_TANH[] = "TA_TANH";
static const char __pyx_k_TA_TEMA[] = "TA_TEMA";
static const char __pyx_k_TA_TRIX[] = "TA_TRIX";
static const char __pyx_k_columns[] = "columns";
static const char __pyx_k_getitem[] = "__getitem__";
static const char __pyx_k_integer[] = "integer";
static const char __pyx_k_max_int[] = "max_int";
static const char __pyx_k_maximum[] = "maximum";
static const char __pyx_k_min_int[] = "min_int";
static const char __pyx_k_missing[] = "missing";
static const char __pyx_k_nbdevdn[] = "nbdevdn";
static const char __pyx_k_nbdevup[] = "nbdevup";
static const char __pyx_k_outfama[] = "outfama";
static const char __pyx_k_outmacd[] = "outmacd";
static const char __pyx_k_outmama[] = "outmama";
static const char __pyx_k_outputs[] = "outputs";
static const char __pyx_k_outreal[] = "outreal";
static const char __pyx_k_outsine[] = "outsine";
static const char __pyx_k_periods[] = "periods";
static const char __pyx_k_prepare[] = "__prepare__";
static const char __pyx_k_replace[] = "replace";
static const char __pyx_k_results[] = "results";
static const char __pyx_k_retCode[] = "retCode";
static const char __pyx_k_unicode[] = "__unicode__";
static const char __pyx_k_version[] = "version";
static const char __pyx_k_vfactor[] = "vfactor";
static const char __pyx_k_AROONOSC[] = "AROONOSC";
static const char __pyx_k_AVGPRICE[] = "AVGPRICE";
static const char __pyx_k_BodyDoji[] = "BodyDoji";
static const char __pyx_k_BodyLong[] = "BodyLong";
static const char __pyx_k_Function[] = "Function";
static const char __pyx_k_MAXINDEX[] = "MAXINDEX";
static const char __pyx_k_MEDPRICE[] = "MEDPRICE";
static const char __pyx_k_MIDPOINT[] = "MIDPOINT";
static const char __pyx_k_MIDPRICE[] = "MIDPRICE";
static const char __pyx_k_MININDEX[] = "MININDEX";
static const char __pyx_k_MINUS_DI[] = "MINUS_DI";
static const char __pyx_k_MINUS_DM[] = "MINUS_DM";
static const char __pyx_k_RealBody[] = "RealBody";
static const char __pyx_k_STOCHRSI[] = "STOCHRSI";
static const char __pyx_k_TA_ADOSC[] = "TA_ADOSC";
static const char __pyx_k_TA_AROON[] = "TA_AROON";
static const char __pyx_k_TA_FLOOR[] = "TA_FLOOR";
static const char __pyx_k_TA_LOG10[] = "TA_LOG10";
static const char __pyx_k_TA_STOCH[] = "TA_STOCH";
static const char __pyx_k_TA_TRIMA[] = "TA_TRIMA";
static const char __pyx_k_TA_WILLR[] = "TA_WILLR";
static const char __pyx_k_TYPPRICE[] = "TYPPRICE";
static const char __pyx_k_WCLPRICE[] = "WCLPRICE";
static const char __pyx_k_defaults[] = "defaults";
static const char __pyx_k_is_empty[] = "is_empty";
static const char __pyx_k_lookback[] = "lookback";
static const char __pyx_k_low_data[] = "low_data";
static const char __pyx_k_outfastd[] = "outfastd";
static const char __pyx_k_outfastk[] = "outfastk";
static const char __pyx_k_outslowd[] = "outslowd";
static const char __pyx_k_outslowk[] = "outslowk";
static const char __pyx_k_property[] = "property";
static const char __pyx_k_qualname[] = "__qualname__";
static const char __pyx_k_ret_code[] = "ret_code";
static const char __pyx_k_to_numpy[] = "to_numpy";
static const char __pyx_k_BodyShort[] = "BodyShort";
static const char __pyx_k_CDL2CROWS[] = "CDL2CROWS";
static const char __pyx_k_CDLHAMMER[] = "CDLHAMMER";
static const char __pyx_k_CDLHARAMI[] = "CDLHARAMI";
static const char __pyx_k_CDLINNECK[] = "CDLINNECK";
static const char __pyx_k_CDLONNECK[] = "CDLONNECK";
static const char __pyx_k_CDLTAKURI[] = "CDLTAKURI";
static const char __pyx_k_DataFrame[] = "DataFrame";
static const char __pyx_k_HT_PHASOR[] = "HT_PHASOR";
static const char __pyx_k_Histogram[] = "Histogram";
static const char __pyx_k_LINEARREG[] = "LINEARREG";
static const char __pyx_k_RangeType[] = "RangeType";
static const char __pyx_k_TA_BBANDS[] = "TA_BBANDS";
static const char __pyx_k_TA_CORREL[] = "TA_CORREL";
static const char __pyx_k_TA_MINMAX[] = "TA_MINMAX";
static const char __pyx_k_TA_SAREXT[] = "TA_SAREXT";
static const char __pyx_k_TA_STDDEV[] = "TA_STDDEV";
static const char __pyx_k_TA_STOCHF[] = "TA_STOCHF";
static const char __pyx_k_TA_TRANGE[] = "TA_TRANGE";
static const char __pyx_k_TA_ULTOSC[] = "TA_ULTOSC";
static const char __pyx_k_TypeError[] = "TypeError";
static const char __pyx_k_avgperiod[] = "avgperiod";
static const char __pyx_k_bytes2str[] = "bytes2str";
static const char __pyx_k_enumerate[] = "enumerate";
static const char __pyx_k_fastlimit[] = "fastlimit";
static const char __pyx_k_func_args[] = "func_args";
static const char __pyx_k_func_info[] = "func_info";
static const char __pyx_k_func_line[] = "func_line";
static const char __pyx_k_functions[] = "functions";
static const char __pyx_k_get_flags[] = "__get_flags";
static const char __pyx_k_high_data[] = "high_data";
static const char __pyx_k_maxperiod[] = "maxperiod";
static const char __pyx_k_metaclass[] = "__metaclass__";
static const char __pyx_k_minperiod[] = "minperiod";
static const char __pyx_k_open_data[] = "open_data";
static const char __pyx_k_opt_input[] = "opt_input";
static const char __pyx_k_outbegidx[] = "outbegidx";
static const char __pyx_k_outmaxidx[] = "outmaxidx";
static const char __pyx_k_outminidx[] = "outminidx";
static const char __pyx_k_rangetype[] = "rangetype";
static const char __pyx_k_real_data[] = "real_data";
static const char __pyx_k_slowlimit[] = "slowlimit";
static const char __pyx_k_str2bytes[] = "str2bytes";
static const char __pyx_k_stream_AD[] = "stream_AD";
static const char __pyx_k_stream_DX[] = "stream_DX";
static const char __pyx_k_stream_LN[] = "stream_LN";
static const char __pyx_k_stream_MA[] = "stream_MA";
static const char __pyx_k_stream_T3[] = "stream_T3";
static const char __pyx_k_stream__s[] = "stream_%s";
static const char __pyx_k_timeStamp[] = "timeStamp";
static const char __pyx_k_CDL3INSIDE[] = "CDL3INSIDE";
static const char __pyx_k_CDLHIKKAKE[] = "CDLHIKKAKE";
static const char __pyx_k_CDLKICKING[] = "CDLKICKING";
static const char __pyx_k_CDLMATHOLD[] = "CDLMATHOLD";
static const char __pyx_k_CDLTRISTAR[] = "CDLTRISTAR";
static const char __pyx_k_HT_DCPHASE[] = "HT_DCPHASE";
static const char __pyx_k_IndexError[] = "IndexError";
static const char __pyx_k_Parameters[] = "Parameters:";
static const char __pyx_k_ShadowLong[] = "ShadowLong";
static const char __pyx_k_TA_CDLDOJI[] = "TA_CDLDOJI";
static const char __pyx_k_TA_HT_SINE[] = "TA_HT_SINE";
static const char __pyx_k_TA_MACDEXT[] = "TA_MACDEXT";
static const char __pyx_k_TA_MACDFIX[] = "TA_MACDFIX";
static const char __pyx_k_TA_PLUS_DI[] = "TA_PLUS_DI";
static const char __pyx_k_TA_PLUS_DM[] = "TA_PLUS_DM";
static const char __pyx_k_TA_ROCR100[] = "TA_ROCR100";
static const char __pyx_k_close_data[] = "close_data";
static const char __pyx_k_fastmatype[] = "fastmatype";
static const char __pyx_k_fastperiod[] = "fastperiod";
static const char __pyx_k_input_name[] = "input_name";
static const char __pyx_k_num_inputs[] = "num_inputs";
static const char __pyx_k_outaroonup[] = "outaroonup";
static const char __pyx_k_outinphase[] = "outinphase";
static const char __pyx_k_outinteger[] = "outinteger";
static const char __pyx_k_param_name[] = "param_name";
static const char __pyx_k_parameters[] = "parameters";
static const char __pyx_k_real0_data[] = "real0_data";
static const char __pyx_k_real1_data[] = "real1_data";
static const char __pyx_k_skip_first[] = "skip_first";
static const char __pyx_k_slowmatype[] = "slowmatype";
static const char __pyx_k_slowperiod[] = "slowperiod";
static const char __pyx_k_startvalue[] = "startvalue";
static const char __pyx_k_stream_ADD[] = "stream_ADD";
static const char __pyx_k_stream_ADX[] = "stream_ADX";
static const char __pyx_k_stream_APO[] = "stream_APO";
static const char __pyx_k_stream_ATR[] = "stream_ATR";
static const char __pyx_k_stream_BOP[] = "stream_BOP";
static const char __pyx_k_stream_CCI[] = "stream_CCI";
static const char __pyx_k_stream_CMO[] = "stream_CMO";
static const char __pyx_k_stream_COS[] = "stream_COS";
static const char __pyx_k_stream_DIV[] = "stream_DIV";
static const char __pyx_k_stream_EMA[] = "stream_EMA";
static const char __pyx_k_stream_EXP[] = "stream_EXP";
static const char __pyx_k_stream_MAX[] = "stream_MAX";
static const char __pyx_k_stream_MFI[] = "stream_MFI";
static const char __pyx_k_stream_MIN[] = "stream_MIN";
static const char __pyx_k_stream_MOM[] = "stream_MOM";
static const char __pyx_k_stream_OBV[] = "stream_OBV";
static const char __pyx_k_stream_PPO[] = "stream_PPO";
static const char __pyx_k_stream_ROC[] = "stream_ROC";
static const char __pyx_k_stream_RSI[] = "stream_RSI";
static const char __pyx_k_stream_SAR[] = "stream_SAR";
static const char __pyx_k_stream_SIN[] = "stream_SIN";
static const char __pyx_k_stream_SMA[] = "stream_SMA";
static const char __pyx_k_stream_SUB[] = "stream_SUB";
static const char __pyx_k_stream_SUM[] = "stream_SUM";
static const char __pyx_k_stream_TAN[] = "stream_TAN";
static const char __pyx_k_stream_TSF[] = "stream_TSF";
static const char __pyx_k_stream_VAR[] = "stream_VAR";
static const char __pyx_k_stream_WMA[] = "stream_WMA";
static const char __pyx_k_ta_version[] = "__ta_version__";
static const char __pyx_k_timeperiod[] = "timeperiod";
static const char __pyx_k_ARRAY_TYPES[] = "__ARRAY_TYPES";
static const char __pyx_k_CDL3OUTSIDE[] = "CDL3OUTSIDE";
static const char __pyx_k_CDLBELTHOLD[] = "CDLBELTHOLD";
static const char __pyx_k_CDLDOJISTAR[] = "CDLDOJISTAR";
static const char __pyx_k_CDLHIGHWAVE[] = "CDLHIGHWAVE";
static const char __pyx_k_CDLLONGLINE[] = "CDLLONGLINE";
static const char __pyx_k_CDLMARUBOZU[] = "CDLMARUBOZU";
static const char __pyx_k_CDLPIERCING[] = "CDLPIERCING";
static const char __pyx_k_Dashed_Line[] = "Dashed Line";
static const char __pyx_k_Dotted_Line[] = "Dotted Line";
static const char __pyx_k_HT_DCPERIOD[] = "HT_DCPERIOD";
static const char __pyx_k_ImportError[] = "ImportError";
static const char __pyx_k_MINMAXINDEX[] = "MINMAXINDEX";
static const char __pyx_k_OrderedDict[] = "OrderedDict";
static const char __pyx_k_ShadowShort[] = "ShadowShort";
static const char __pyx_k_TA_AROONOSC[] = "TA_AROONOSC";
static const char __pyx_k_TA_AVGPRICE[] = "TA_AVGPRICE";
static const char __pyx_k_TA_MAXINDEX[] = "TA_MAXINDEX";
static const char __pyx_k_TA_MEDPRICE[] = "TA_MEDPRICE";
static const char __pyx_k_TA_MIDPOINT[] = "TA_MIDPOINT";
static const char __pyx_k_TA_MIDPRICE[] = "TA_MIDPRICE";
static const char __pyx_k_TA_MININDEX[] = "TA_MININDEX";
static const char __pyx_k_TA_MINUS_DI[] = "TA_MINUS_DI";
static const char __pyx_k_TA_MINUS_DM[] = "TA_MINUS_DM";
static const char __pyx_k_TA_STOCHRSI[] = "TA_STOCHRSI";
static const char __pyx_k_TA_Shutdown[] = "TA_Shutdown";
static const char __pyx_k_TA_TYPPRICE[] = "TA_TYPPRICE";
static const char __pyx_k_TA_WCLPRICE[] = "TA_WCLPRICE";
static const char __pyx_k_any_ndarray[] = "(any ndarray)";
static const char __pyx_k_collections[] = "collections";
static const char __pyx_k_func_object[] = "func_object";
static const char __pyx_k_input_names[] = "input_names";
static const char __pyx_k_num_outputs[] = "num_outputs";
static const char __pyx_k_ordereddict[] = "ordereddict";
static const char __pyx_k_outleadsine[] = "outleadsine";
static const char __pyx_k_outmacdhist[] = "outmacdhist";
static const char __pyx_k_output_name[] = "output_name";
static const char __pyx_k_penetration[] = "penetration";
static const char __pyx_k_settingtype[] = "settingtype";
static const char __pyx_k_stream_ACOS[] = "stream_ACOS";
static const char __pyx_k_stream_ADXR[] = "stream_ADXR";
static const char __pyx_k_stream_ASIN[] = "stream_ASIN";
static const char __pyx_k_stream_ATAN[] = "stream_ATAN";
static const char __pyx_k_stream_BETA[] = "stream_BETA";
static const char __pyx_k_stream_CEIL[] = "stream_CEIL";
static const char __pyx_k_stream_COSH[] = "stream_COSH";
static const char __pyx_k_stream_DEMA[] = "stream_DEMA";
static const char __pyx_k_stream_KAMA[] = "stream_KAMA";
static const char __pyx_k_stream_MACD[] = "stream_MACD";
static const char __pyx_k_stream_MAMA[] = "stream_MAMA";
static const char __pyx_k_stream_MAVP[] = "stream_MAVP";
static const char __pyx_k_stream_MULT[] = "stream_MULT";
static const char __pyx_k_stream_NATR[] = "stream_NATR";
static const char __pyx_k_stream_ROCP[] = "stream_ROCP";
static const char __pyx_k_stream_ROCR[] = "stream_ROCR";
static const char __pyx_k_stream_SINH[] = "stream_SINH";
static const char __pyx_k_stream_SQRT[] = "stream_SQRT";
static const char __pyx_k_stream_TANH[] = "stream_TANH";
static const char __pyx_k_stream_TEMA[] = "stream_TEMA";
static const char __pyx_k_stream_TRIX[] = "stream_TRIX";
static const char __pyx_k_ta_shutdown[] = "_ta_shutdown";
static const char __pyx_k_timeperiod1[] = "timeperiod1";
static const char __pyx_k_timeperiod2[] = "timeperiod2";
static const char __pyx_k_timeperiod3[] = "timeperiod3";
static const char __pyx_k_update_info[] = "update_info";
static const char __pyx_k_value_range[] = "value_range";
static const char __pyx_k_volume_data[] = "volume_data";
static const char __pyx_k_BodyVeryLong[] = "BodyVeryLong";
static const char __pyx_k_CDLBREAKAWAY[] = "CDLBREAKAWAY";
static const char __pyx_k_CDLENGULFING[] = "CDLENGULFING";
static const char __pyx_k_CDLSHORTLINE[] = "CDLSHORTLINE";
static const char __pyx_k_CDLTASUKIGAP[] = "CDLTASUKIGAP";
static const char __pyx_k_CDLTHRUSTING[] = "CDLTHRUSTING";
static const char __pyx_k_Function_run[] = "Function.run";
static const char __pyx_k_HT_TRENDLINE[] = "HT_TRENDLINE";
static const char __pyx_k_HT_TRENDMODE[] = "HT_TRENDMODE";
static const char __pyx_k_Pattern_Bool[] = "Pattern (Bool)";
static const char __pyx_k_TA_CDL2CROWS[] = "TA_CDL2CROWS";
static const char __pyx_k_TA_CDLHAMMER[] = "TA_CDLHAMMER";
static const char __pyx_k_TA_CDLHARAMI[] = "TA_CDLHARAMI";
static const char __pyx_k_TA_CDLINNECK[] = "TA_CDLINNECK";
static const char __pyx_k_TA_CDLONNECK[] = "TA_CDLONNECK";
static const char __pyx_k_TA_CDLTAKURI[] = "TA_CDLTAKURI";
static const char __pyx_k_TA_HT_PHASOR[] = "TA_HT_PHASOR";
static const char __pyx_k_TA_LINEARREG[] = "TA_LINEARREG";
static const char __pyx_k_acceleration[] = "acceleration";
static const char __pyx_k_column_stack[] = "column_stack";
static const char __pyx_k_display_name[] = "display_name";
static const char __pyx_k_fastd_matype[] = "fastd_matype";
static const char __pyx_k_fastd_period[] = "fastd_period";
static const char __pyx_k_fastk_period[] = "fastk_period";
static const char __pyx_k_input_arrays[] = "input_arrays";
static const char __pyx_k_missing_keys[] = "missing_keys";
static const char __pyx_k_openInterest[] = "openInterest";
static const char __pyx_k_outaroondown[] = "outaroondown";
static const char __pyx_k_outnbelement[] = "outnbelement";
static const char __pyx_k_output_flags[] = "output_flags";
static const char __pyx_k_output_names[] = "output_names";
static const char __pyx_k_periods_data[] = "periods_data";
static const char __pyx_k_price_series[] = "price_series";
static const char __pyx_k_signalmatype[] = "signalmatype";
static const char __pyx_k_signalperiod[] = "signalperiod";
static const char __pyx_k_slowd_matype[] = "slowd_matype";
static const char __pyx_k_slowd_period[] = "slowd_period";
static const char __pyx_k_slowk_matype[] = "slowk_matype";
static const char __pyx_k_slowk_period[] = "slowk_period";
static const char __pyx_k_stream_ADOSC[] = "stream_ADOSC";
static const char __pyx_k_stream_AROON[] = "stream_AROON";
static const char __pyx_k_stream_FLOOR[] = "stream_FLOOR";
static const char __pyx_k_stream_LOG10[] = "stream_LOG10";
static const char __pyx_k_stream_STOCH[] = "stream_STOCH";
static const char __pyx_k_stream_TRIMA[] = "stream_TRIMA";
static const char __pyx_k_stream_WILLR[] = "stream_WILLR";
static const char __pyx_k_CDLHANGINGMAN[] = "CDLHANGINGMAN";
static const char __pyx_k_CDLHIKKAKEMOD[] = "CDLHIKKAKEMOD";
static const char __pyx_k_Function_info[] = "Function.info";
static const char __pyx_k_PANDAS_SERIES[] = "__PANDAS_SERIES";
static const char __pyx_k_POLARS_SERIES[] = "__POLARS_SERIES";
static const char __pyx_k_TA_CDL3INSIDE[] = "TA_CDL3INSIDE";
static const char __pyx_k_TA_CDLHIKKAKE[] = "TA_CDLHIKKAKE";
static const char __pyx_k_TA_CDLKICKING[] = "TA_CDLKICKING";
static const char __pyx_k_TA_CDLMATHOLD[] = "TA_CDLMATHOLD";
static const char __pyx_k_TA_CDLTRISTAR[] = "TA_CDLTRISTAR";
static const char __pyx_k_TA_FUNC_FLAGS[] = "TA_FUNC_FLAGS";
static const char __pyx_k_TA_HT_DCPHASE[] = "TA_HT_DCPHASE";
static const char __pyx_k_TA_Initialize[] = "TA_Initialize";
static const char __pyx_k_Unknown_Error[] = "Unknown Error";
static const char __pyx_k_call_function[] = "__call_function";
static const char __pyx_k_default_value[] = "default_value";
static const char __pyx_k_documentation[] = "documentation";
static const char __pyx_k_function_name[] = "function_name";
static const char __pyx_k_outmacdsignal[] = "outmacdsignal";
static const char __pyx_k_outquadrature[] = "outquadrature";
static const char __pyx_k_stream_BBANDS[] = "stream_BBANDS";
static const char __pyx_k_stream_CORREL[] = "stream_CORREL";
static const char __pyx_k_stream_MINMAX[] = "stream_MINMAX";
static const char __pyx_k_stream_SAREXT[] = "stream_SAREXT";
static const char __pyx_k_stream_STDDEV[] = "stream_STDDEV";
static const char __pyx_k_stream_STOCHF[] = "stream_STOCHF";
static const char __pyx_k_stream_TRANGE[] = "stream_TRANGE";
static const char __pyx_k_stream_ULTOSC[] = "stream_ULTOSC";
static const char __pyx_k_ta_initialize[] = "_ta_initialize";
static const char __pyx_k_talib__ta_lib[] = "talib._ta_lib";
static const char __pyx_k_CDL3BLACKCROWS[] = "CDL3BLACKCROWS";
static const char __pyx_k_CDL3LINESTRIKE[] = "CDL3LINESTRIKE";
static const char __pyx_k_CDLEVENINGSTAR[] = "CDLEVENINGSTAR";
static const char __pyx_k_CDLHARAMICROSS[] = "CDLHARAMICROSS";
static const char __pyx_k_CDLMATCHINGLOW[] = "CDLMATCHINGLOW";
static const char __pyx_k_CDLMORNINGSTAR[] = "CDLMORNINGSTAR";
static const char __pyx_k_CDLRICKSHAWMAN[] = "CDLRICKSHAWMAN";
static const char __pyx_k_CDLSPINNINGTOP[] = "CDLSPINNINGTOP";
static const char __pyx_k_Function___str[] = "Function.__str__";
static const char __pyx_k_Function__info[] = "_Function__info";
static const char __pyx_k_Function__name[] = "_Function__name";
static const char __pyx_k_MA_Type___init[] = "MA_Type.__init__";
static const char __pyx_k_ShadowVeryLong[] = "ShadowVeryLong";
static const char __pyx_k_TA_CDL3OUTSIDE[] = "TA_CDL3OUTSIDE";
static const char __pyx_k_TA_CDLBELTHOLD[] = "TA_CDLBELTHOLD";
static const char __pyx_k_TA_CDLDOJISTAR[] = "TA_CDLDOJISTAR";
static const char __pyx_k_TA_CDLHIGHWAVE[] = "TA_CDLHIGHWAVE";
static const char __pyx_k_TA_CDLLONGLINE[] = "TA_CDLLONGLINE";
static const char __pyx_k_TA_CDLMARUBOZU[] = "TA_CDLMARUBOZU";
static const char __pyx_k_TA_CDLPIERCING[] = "TA_CDLPIERCING";
static const char __pyx_k_TA_GetFuncInfo[] = "TA_GetFuncInfo";
static const char __pyx_k_TA_GetLookback[] = "TA_GetLookback";
static const char __pyx_k_TA_HT_DCPERIOD[] = "TA_HT_DCPERIOD";
static const char __pyx_k_TA_INPUT_FLAGS[] = "TA_INPUT_FLAGS";
static const char __pyx_k_TA_MINMAXINDEX[] = "TA_MINMAXINDEX";
static const char __pyx_k_function_flags[] = "function_flags";
static const char __pyx_k_get_parameters[] = "get_parameters";
static const char __pyx_k_input_arrays_2[] = "[input_arrays]";
static const char __pyx_k_num_opt_inputs[] = "num_opt_inputs";
static const char __pyx_k_outmaxidx_data[] = "outmaxidx_data";
static const char __pyx_k_outminidx_data[] = "outminidx_data";
static const char __pyx_k_set_parameters[] = "set_parameters";
static const char __pyx_k_stream_CDLDOJI[] = "stream_CDLDOJI";
static const char __pyx_k_stream_HT_SINE[] = "stream_HT_SINE";
static const char __pyx_k_stream_MACDEXT[] = "stream_MACDEXT";
static const char __pyx_k_stream_MACDFIX[] = "stream_MACDFIX";
static const char __pyx_k_stream_PLUS_DI[] = "stream_PLUS_DI";
static const char __pyx_k_stream_PLUS_DM[] = "stream_PLUS_DM";
static const char __pyx_k_stream_ROCR100[] = "stream_ROCR100";
static const char __pyx_k_ta_getFuncInfo[] = "_ta_getFuncInfo";
static const char __pyx_k_CDLADVANCEBLOCK[] = "CDLADVANCEBLOCK";
static const char __pyx_k_CDLHOMINGPIGEON[] = "CDLHOMINGPIGEON";
static const char __pyx_k_CDLLADDERBOTTOM[] = "CDLLADDERBOTTOM";
static const char __pyx_k_CDLSHOOTINGSTAR[] = "CDLSHOOTINGSTAR";
static const char __pyx_k_CDLUNIQUE3RIVER[] = "CDLUNIQUE3RIVER";
static const char __pyx_k_Function___call[] = "Function.__call__";
static const char __pyx_k_Function___init[] = "Function.__init__";
static const char __pyx_k_Function___repr[] = "Function.__repr__";
static const char __pyx_k_LINEARREG_ANGLE[] = "LINEARREG_ANGLE";
static const char __pyx_k_LINEARREG_SLOPE[] = "LINEARREG_SLOPE";
static const char __pyx_k_ShadowVeryShort[] = "ShadowVeryShort";
static const char __pyx_k_TA_CDLBREAKAWAY[] = "TA_CDLBREAKAWAY";
static const char __pyx_k_TA_CDLENGULFING[] = "TA_CDLENGULFING";
static const char __pyx_k_TA_CDLSHORTLINE[] = "TA_CDLSHORTLINE";
static const char __pyx_k_TA_CDLTASUKIGAP[] = "TA_CDLTASUKIGAP";
static const char __pyx_k_TA_CDLTHRUSTING[] = "TA_CDLTHRUSTING";
static const char __pyx_k_TA_HT_TRENDLINE[] = "TA_HT_TRENDLINE";
static const char __pyx_k_TA_HT_TRENDMODE[] = "TA_HT_TRENDMODE";
static const char __pyx_k_TA_OUTPUT_FLAGS[] = "TA_OUTPUT_FLAGS";
static const char __pyx_k_get_input_names[] = "get_input_names";
static const char __pyx_k_offsetonreverse[] = "offsetonreverse";
static const char __pyx_k_outinteger_data[] = "outinteger_data";
static const char __pyx_k_set_input_names[] = "set_input_names";
static const char __pyx_k_stream_AROONOSC[] = "stream_AROONOSC";
static const char __pyx_k_stream_AVGPRICE[] = "stream_AVGPRICE";
static const char __pyx_k_stream_MAXINDEX[] = "stream_MAXINDEX";
static const char __pyx_k_stream_MEDPRICE[] = "stream_MEDPRICE";
static const char __pyx_k_stream_MIDPOINT[] = "stream_MIDPOINT";
static const char __pyx_k_stream_MIDPRICE[] = "stream_MIDPRICE";
static const char __pyx_k_stream_MININDEX[] = "stream_MININDEX";
static const char __pyx_k_stream_MINUS_DI[] = "stream_MINUS_DI";
static const char __pyx_k_stream_MINUS_DM[] = "stream_MINUS_DM";
static const char __pyx_k_stream_STOCHRSI[] = "stream_STOCHRSI";
static const char __pyx_k_stream_TYPPRICE[] = "stream_TYPPRICE";
static const char __pyx_k_stream_WCLPRICE[] = "stream_WCLPRICE";
static const char __pyx_k_ta_getFuncTable[] = "_ta_getFuncTable";
static const char __pyx_k_talib__func_pxi[] = "talib/_func.pxi";
static const char __pyx_k_CDL3STARSINSOUTH[] = "CDL3STARSINSOUTH";
static const char __pyx_k_CDLABANDONEDBABY[] = "CDLABANDONEDBABY";
static const char __pyx_k_CDLCOUNTERATTACK[] = "CDLCOUNTERATTACK";
static const char __pyx_k_CDLDRAGONFLYDOJI[] = "CDLDRAGONFLYDOJI";
static const char __pyx_k_CDLSTICKSANDWICH[] = "CDLSTICKSANDWICH";
static const char __pyx_k_Function_outputs[] = "Function.outputs";
static const char __pyx_k_PANDAS_DATAFRAME[] = "__PANDAS_DATAFRAME";
static const char __pyx_k_POLARS_DATAFRAME[] = "__POLARS_DATAFRAME";
static const char __pyx_k_TA_CDLHANGINGMAN[] = "TA_CDLHANGINGMAN";
static const char __pyx_k_TA_CDLHIKKAKEMOD[] = "TA_CDLHIKKAKEMOD";
static const char __pyx_k_TA_FuncTableFree[] = "TA_FuncTableFree";
static const char __pyx_k_TA_GetFuncHandle[] = "TA_GetFuncHandle";
static const char __pyx_k_accelerationlong[] = "accelerationlong";
static const char __pyx_k_get_input_arrays[] = "get_input_arrays";
static const char __pyx_k_opt_input_values[] = "opt_input_values";
static const char __pyx_k_outreallowerband[] = "outreallowerband";
static const char __pyx_k_outrealupperband[] = "outrealupperband";
static const char __pyx_k_set_input_arrays[] = "set_input_arrays";
static const char __pyx_k_stream_CDL2CROWS[] = "stream_CDL2CROWS";
static const char __pyx_k_stream_CDLHAMMER[] = "stream_CDLHAMMER";
static const char __pyx_k_stream_CDLHARAMI[] = "stream_CDLHARAMI";
static const char __pyx_k_stream_CDLINNECK[] = "stream_CDLINNECK";
static const char __pyx_k_stream_CDLONNECK[] = "stream_CDLONNECK";
static const char __pyx_k_stream_CDLTAKURI[] = "stream_CDLTAKURI";
static const char __pyx_k_stream_HT_PHASOR[] = "stream_HT_PHASOR";
static const char __pyx_k_stream_LINEARREG[] = "stream_LINEARREG";
static const char __pyx_k_ta_func_unst_ids[] = "_ta_func_unst_ids";
static const char __pyx_k_ta_getGroupTable[] = "_ta_getGroupTable";
static const char __pyx_k_AllCandleSettings[] = "AllCandleSettings";
static const char __pyx_k_CDL3WHITESOLDIERS[] = "CDL3WHITESOLDIERS";
static const char __pyx_k_CDLDARKCLOUDCOVER[] = "CDLDARKCLOUDCOVER";
static const char __pyx_k_CDLGRAVESTONEDOJI[] = "CDLGRAVESTONEDOJI";
static const char __pyx_k_CDLINVERTEDHAMMER[] = "CDLINVERTEDHAMMER";
static const char __pyx_k_CDLLONGLEGGEDDOJI[] = "CDLLONGLEGGEDDOJI";
static const char __pyx_k_CDLSTALLEDPATTERN[] = "CDLSTALLEDPATTERN";
static const char __pyx_k_CandleSettingType[] = "CandleSettingType";
static const char __pyx_k_Function__namestr[] = "_Function__namestr";
static const char __pyx_k_Function__outputs[] = "_Function__outputs";
static const char __pyx_k_Function_lookback[] = "Function.lookback";
static const char __pyx_k_MA_Type___getitem[] = "MA_Type.__getitem__";
static const char __pyx_k_TA_CDL3BLACKCROWS[] = "TA_CDL3BLACKCROWS";
static const char __pyx_k_TA_CDL3LINESTRIKE[] = "TA_CDL3LINESTRIKE";
static const char __pyx_k_TA_CDLEVENINGSTAR[] = "TA_CDLEVENINGSTAR";
static const char __pyx_k_TA_CDLHARAMICROSS[] = "TA_CDLHARAMICROSS";
static const char __pyx_k_TA_CDLMATCHINGLOW[] = "TA_CDLMATCHINGLOW";
static const char __pyx_k_TA_CDLMORNINGSTAR[] = "TA_CDLMORNINGSTAR";
static const char __pyx_k_TA_CDLRICKSHAWMAN[] = "TA_CDLRICKSHAWMAN";
static const char __pyx_k_TA_CDLSPINNINGTOP[] = "TA_CDLSPINNINGTOP";
static const char __pyx_k_TA_FUNCTION_NAMES[] = "__TA_FUNCTION_NAMES__";
static const char __pyx_k_TA_FuncTableAlloc[] = "TA_FuncTableAlloc";
static const char __pyx_k_TA_GroupTableFree[] = "TA_GroupTableFree";
static const char __pyx_k_accelerationshort[] = "accelerationshort";
static const char __pyx_k_flags_lookup_dict[] = "flags_lookup_dict";
static const char __pyx_k_outrealmiddleband[] = "outrealmiddleband";
static const char __pyx_k_set_function_args[] = "set_function_args";
static const char __pyx_k_stream_CDL3INSIDE[] = "stream_CDL3INSIDE";
static const char __pyx_k_stream_CDLHIKKAKE[] = "stream_CDLHIKKAKE";
static const char __pyx_k_stream_CDLKICKING[] = "stream_CDLKICKING";
static const char __pyx_k_stream_CDLMATHOLD[] = "stream_CDLMATHOLD";
static const char __pyx_k_stream_CDLTRISTAR[] = "stream_CDLTRISTAR";
static const char __pyx_k_stream_HT_DCPHASE[] = "stream_HT_DCPHASE";
static const char __pyx_k_talib__common_pxi[] = "talib/_common.pxi";
static const char __pyx_k_talib__stream_pxi[] = "talib/_stream.pxi";
static const char __pyx_k_CDLCLOSINGMARUBOZU[] = "CDLCLOSINGMARUBOZU";
static const char __pyx_k_CDLEVENINGDOJISTAR[] = "CDLEVENINGDOJISTAR";
static const char __pyx_k_CDLIDENTICAL3CROWS[] = "CDLIDENTICAL3CROWS";
static const char __pyx_k_CDLKICKINGBYLENGTH[] = "CDLKICKINGBYLENGTH";
static const char __pyx_k_CDLMORNINGDOJISTAR[] = "CDLMORNINGDOJISTAR";
static const char __pyx_k_CDLSEPARATINGLINES[] = "CDLSEPARATINGLINES";
static const char __pyx_k_CDLUPSIDEGAP2CROWS[] = "CDLUPSIDEGAP2CROWS";
static const char __pyx_k_Function___unicode[] = "Function.__unicode__";
static const char __pyx_k_INPUT_ARRAYS_TYPES[] = "__INPUT_ARRAYS_TYPES";
static const char __pyx_k_Output_can_be_zero[] = "Output can be zero";
static const char __pyx_k_TA_CDLADVANCEBLOCK[] = "TA_CDLADVANCEBLOCK";
static const char __pyx_k_TA_CDLHOMINGPIGEON[] = "TA_CDLHOMINGPIGEON";
static const char __pyx_k_TA_CDLLADDERBOTTOM[] = "TA_CDLLADDERBOTTOM";
static const char __pyx_k_TA_CDLSHOOTINGSTAR[] = "TA_CDLSHOOTINGSTAR";
static const char __pyx_k_TA_CDLUNIQUE3RIVER[] = "TA_CDLUNIQUE3RIVER";
static const char __pyx_k_TA_GroupTableAlloc[] = "TA_GroupTableAlloc";
static const char __pyx_k_TA_LINEARREG_ANGLE[] = "TA_LINEARREG_ANGLE";
static const char __pyx_k_TA_LINEARREG_SLOPE[] = "TA_LINEARREG_SLOPE";
static const char __pyx_k_TA_ParamHolderFree[] = "TA_ParamHolderFree";
static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
static const char __pyx_k_inputs_are_all_NaN[] = "inputs are all NaN";
static const char __pyx_k_stream_CDL3OUTSIDE[] = "stream_CDL3OUTSIDE";
static const char __pyx_k_stream_CDLBELTHOLD[] = "stream_CDLBELTHOLD";
static const char __pyx_k_stream_CDLDOJISTAR[] = "stream_CDLDOJISTAR";
static const char __pyx_k_stream_CDLHIGHWAVE[] = "stream_CDLHIGHWAVE";
static const char __pyx_k_stream_CDLLONGLINE[] = "stream_CDLLONGLINE";
static const char __pyx_k_stream_CDLMARUBOZU[] = "stream_CDLMARUBOZU";
static const char __pyx_k_stream_CDLPIERCING[] = "stream_CDLPIERCING";
static const char __pyx_k_stream_HT_DCPERIOD[] = "stream_HT_DCPERIOD";
static const char __pyx_k_stream_MINMAXINDEX[] = "stream_MINMAXINDEX";
static const char __pyx_k_CDLCONCEALBABYSWALL[] = "CDLCONCEALBABYSWALL";
static const char __pyx_k_CDLGAPSIDESIDEWHITE[] = "CDLGAPSIDESIDEWHITE";
static const char __pyx_k_CDLRISEFALL3METHODS[] = "CDLRISEFALL3METHODS";
static const char __pyx_k_CDLXSIDEGAP3METHODS[] = "CDLXSIDEGAP3METHODS";
static const char __pyx_k_LINEARREG_INTERCEPT[] = "LINEARREG_INTERCEPT";
static const char __pyx_k_TA_CDL3STARSINSOUTH[] = "TA_CDL3STARSINSOUTH";
static const char __pyx_k_TA_CDLABANDONEDBABY[] = "TA_CDLABANDONEDBABY";
static const char __pyx_k_TA_CDLCOUNTERATTACK[] = "TA_CDLCOUNTERATTACK";
static const char __pyx_k_TA_CDLDRAGONFLYDOJI[] = "TA_CDLDRAGONFLYDOJI";
static const char __pyx_k_TA_CDLSTICKSANDWICH[] = "TA_CDLSTICKSANDWICH";
static const char __pyx_k_TA_ParamHolderAlloc[] = "TA_ParamHolderAlloc";
static const char __pyx_k_TA_SetCompatibility[] = "TA_SetCompatibility";
static const char __pyx_k_accelerationmaxlong[] = "accelerationmaxlong";
static const char __pyx_k_get_opt_input_value[] = "__get_opt_input_value";
static const char __pyx_k_stream_CDLBREAKAWAY[] = "stream_CDLBREAKAWAY";
static const char __pyx_k_stream_CDLENGULFING[] = "stream_CDLENGULFING";
static const char __pyx_k_stream_CDLSHORTLINE[] = "stream_CDLSHORTLINE";
static const char __pyx_k_stream_CDLTASUKIGAP[] = "stream_CDLTASUKIGAP";
static const char __pyx_k_stream_CDLTHRUSTING[] = "stream_CDLTHRUSTING";
static const char __pyx_k_stream_HT_TRENDLINE[] = "stream_HT_TRENDLINE";
static const char __pyx_k_stream_HT_TRENDMODE[] = "stream_HT_TRENDMODE";
static const char __pyx_k_talib__abstract_pxi[] = "talib/_abstract.pxi";
static const char __pyx_k_Function__opt_inputs[] = "_Function__opt_inputs";
static const char __pyx_k_TA_CDL3WHITESOLDIERS[] = "TA_CDL3WHITESOLDIERS";
static const char __pyx_k_TA_CDLDARKCLOUDCOVER[] = "TA_CDLDARKCLOUDCOVER";
static const char __pyx_k_TA_CDLGRAVESTONEDOJI[] = "TA_CDLGRAVESTONEDOJI";
static const char __pyx_k_TA_CDLINVERTEDHAMMER[] = "TA_CDLINVERTEDHAMMER";
static const char __pyx_k_TA_CDLLONGLEGGEDDOJI[] = "TA_CDLLONGLEGGEDDOJI";
static const char __pyx_k_TA_CDLSTALLEDPATTERN[] = "TA_CDLSTALLEDPATTERN";
static const char __pyx_k_TA_SetCandleSettings[] = "TA_SetCandleSettings";
static const char __pyx_k_TA_SetUnstablePeriod[] = "TA_SetUnstablePeriod";
static const char __pyx_k_accelerationinitlong[] = "accelerationinitlong";
static const char __pyx_k_accelerationmaxshort[] = "accelerationmaxshort";
static const char __pyx_k_stream_CDLHANGINGMAN[] = "stream_CDLHANGINGMAN";
static const char __pyx_k_stream_CDLHIKKAKEMOD[] = "stream_CDLHIKKAKEMOD";
static const char __pyx_k_ta_get_compatibility[] = "_ta_get_compatibility";
static const char __pyx_k_ta_set_compatibility[] = "_ta_set_compatibility";
static const char __pyx_k_Function__input_names[] = "_Function__input_names";
static const char __pyx_k_Function_output_flags[] = "Function.output_flags";
static const char __pyx_k_Function_output_names[] = "Function.output_names";
static const char __pyx_k_Output_is_over_volume[] = "Output is over volume";
static const char __pyx_k_Simple_Moving_Average[] = "Simple Moving Average";
static const char __pyx_k_TA_CDLCLOSINGMARUBOZU[] = "TA_CDLCLOSINGMARUBOZU";
static const char __pyx_k_TA_CDLEVENINGDOJISTAR[] = "TA_CDLEVENINGDOJISTAR";
static const char __pyx_k_TA_CDLIDENTICAL3CROWS[] = "TA_CDLIDENTICAL3CROWS";
static const char __pyx_k_TA_CDLKICKINGBYLENGTH[] = "TA_CDLKICKINGBYLENGTH";
static const char __pyx_k_TA_CDLMORNINGDOJISTAR[] = "TA_CDLMORNINGDOJISTAR";
static const char __pyx_k_TA_CDLSEPARATINGLINES[] = "TA_CDLSEPARATINGLINES";
static const char __pyx_k_TA_CDLUPSIDEGAP2CROWS[] = "TA_CDLUPSIDEGAP2CROWS";
static const char __pyx_k_accelerationinitshort[] = "accelerationinitshort";
static const char __pyx_k_check_opt_input_value[] = "__check_opt_input_value";
static const char __pyx_k_get_defaults_and_docs[] = "_get_defaults_and_docs";
static const char __pyx_k_stream_CDL3BLACKCROWS[] = "stream_CDL3BLACKCROWS";
static const char __pyx_k_stream_CDL3LINESTRIKE[] = "stream_CDL3LINESTRIKE";
static const char __pyx_k_stream_CDLEVENINGSTAR[] = "stream_CDLEVENINGSTAR";
static const char __pyx_k_stream_CDLHARAMICROSS[] = "stream_CDLHARAMICROSS";
static const char __pyx_k_stream_CDLMATCHINGLOW[] = "stream_CDLMATCHINGLOW";
static const char __pyx_k_stream_CDLMORNINGSTAR[] = "stream_CDLMORNINGSTAR";
static const char __pyx_k_stream_CDLRICKSHAWMAN[] = "stream_CDLRICKSHAWMAN";
static const char __pyx_k_stream_CDLSPINNINGTOP[] = "stream_CDLSPINNINGTOP";
static const char __pyx_k_Function__input_arrays[] = "_Function__input_arrays";
static const char __pyx_k_Output_can_be_negative[] = "Output can be negative";
static const char __pyx_k_Output_can_be_positive[] = "Output can be positive";
static const char __pyx_k_TA_CDLCONCEALBABYSWALL[] = "TA_CDLCONCEALBABYSWALL";
static const char __pyx_k_TA_CDLGAPSIDESIDEWHITE[] = "TA_CDLGAPSIDESIDEWHITE";
static const char __pyx_k_TA_CDLRISEFALL3METHODS[] = "TA_CDLRISEFALL3METHODS";
static const char __pyx_k_TA_CDLXSIDEGAP3METHODS[] = "TA_CDLXSIDEGAP3METHODS";
static const char __pyx_k_TA_LINEARREG_INTERCEPT[] = "TA_LINEARREG_INTERCEPT";
static const char __pyx_k_display_name_s_group_s[] = "%(display_name)s (%(group)s)\n";
static const char __pyx_k_stream_CDLADVANCEBLOCK[] = "stream_CDLADVANCEBLOCK";
static const char __pyx_k_stream_CDLHOMINGPIGEON[] = "stream_CDLHOMINGPIGEON";
static const char __pyx_k_stream_CDLLADDERBOTTOM[] = "stream_CDLLADDERBOTTOM";
static const char __pyx_k_stream_CDLSHOOTINGSTAR[] = "stream_CDLSHOOTINGSTAR";
static const char __pyx_k_stream_CDLUNIQUE3RIVER[] = "stream_CDLUNIQUE3RIVER";
static const char __pyx_k_stream_LINEARREG_ANGLE[] = "stream_LINEARREG_ANGLE";
static const char __pyx_k_stream_LINEARREG_SLOPE[] = "stream_LINEARREG_SLOPE";
static const char __pyx_k_ta_get_unstable_period[] = "_ta_get_unstable_period";
static const char __pyx_k_ta_set_candle_settings[] = "_ta_set_candle_settings";
static const char __pyx_k_ta_set_unstable_period[] = "_ta_set_unstable_period";
static const char __pyx_k_Function__call_function[] = "_Function__call_function";
static const char __pyx_k_Function__outputs_valid[] = "_Function__outputs_valid";
static const char __pyx_k_Function_function_flags[] = "Function.function_flags";
static const char __pyx_k_Function_get_parameters[] = "Function.get_parameters";
static const char __pyx_k_Function_set_parameters[] = "Function.set_parameters";
static const char __pyx_k_Output_is_a_candlestick[] = "Output is a candlestick";
static const char __pyx_k_TA_SetOptInputParamReal[] = "TA_SetOptInputParamReal";
static const char __pyx_k_Weighted_Moving_Average[] = "Weighted Moving Average";
static const char __pyx_k_stream_CDL3STARSINSOUTH[] = "stream_CDL3STARSINSOUTH";
static const char __pyx_k_stream_CDLABANDONEDBABY[] = "stream_CDLABANDONEDBABY";
static const char __pyx_k_stream_CDLCOUNTERATTACK[] = "stream_CDLCOUNTERATTACK";
static const char __pyx_k_stream_CDLDRAGONFLYDOJI[] = "stream_CDLDRAGONFLYDOJI";
static const char __pyx_k_stream_CDLSTICKSANDWICH[] = "stream_CDLSTICKSANDWICH";
static const char __pyx_k_Bad_Object_TA_BAD_OBJECT[] = "Bad Object (TA_BAD_OBJECT)";
static const char __pyx_k_Function___call_function[] = "Function.__call_function";
static const char __pyx_k_Function_get_input_names[] = "Function.get_input_names";
static const char __pyx_k_Function_set_input_names[] = "Function.set_input_names";
static const char __pyx_k_TA_GetInputParameterInfo[] = "TA_GetInputParameterInfo";
static const char __pyx_k_initialize_function_info[] = "__initialize_function_info";
static const char __pyx_k_input_price_series_names[] = "input_price_series_names";
static const char __pyx_k_no_existing_input_arrays[] = "no_existing_input_arrays";
static const char __pyx_k_price_series_name_values[] = "price_series_name_values";
static const char __pyx_k_stream_CDL3WHITESOLDIERS[] = "stream_CDL3WHITESOLDIERS";
static const char __pyx_k_stream_CDLDARKCLOUDCOVER[] = "stream_CDLDARKCLOUDCOVER";
static const char __pyx_k_stream_CDLGRAVESTONEDOJI[] = "stream_CDLGRAVESTONEDOJI";
static const char __pyx_k_stream_CDLINVERTEDHAMMER[] = "stream_CDLINVERTEDHAMMER";
static const char __pyx_k_stream_CDLLONGLEGGEDDOJI[] = "stream_CDLLONGLEGGEDDOJI";
static const char __pyx_k_stream_CDLSTALLEDPATTERN[] = "stream_CDLSTALLEDPATTERN";
static const char __pyx_k_ta_getInputParameterInfo[] = "_ta_getInputParameterInfo";
static const char __pyx_k_Function_get_input_arrays[] = "Function.get_input_arrays";
static const char __pyx_k_Function_set_input_arrays[] = "Function.set_input_arrays";
static const char __pyx_k_TA_GetOutputParameterInfo[] = "TA_GetOutputParameterInfo";
static const char __pyx_k_Triangular_Moving_Average[] = "Triangular Moving Average";
static const char __pyx_k_stream_CDLCLOSINGMARUBOZU[] = "stream_CDLCLOSINGMARUBOZU";
static const char __pyx_k_stream_CDLEVENINGDOJISTAR[] = "stream_CDLEVENINGDOJISTAR";
static const char __pyx_k_stream_CDLIDENTICAL3CROWS[] = "stream_CDLIDENTICAL3CROWS";
static const char __pyx_k_stream_CDLKICKINGBYLENGTH[] = "stream_CDLKICKINGBYLENGTH";
static const char __pyx_k_stream_CDLMORNINGDOJISTAR[] = "stream_CDLMORNINGDOJISTAR";
static const char __pyx_k_stream_CDLSEPARATINGLINES[] = "stream_CDLSEPARATINGLINES";
static const char __pyx_k_stream_CDLUPSIDEGAP2CROWS[] = "stream_CDLUPSIDEGAP2CROWS";
static const char __pyx_k_ta_getOutputParameterInfo[] = "_ta_getOutputParameterInfo";
static const char __pyx_k_Bad_Parameter_TA_BAD_PARAM[] = "Bad Parameter (TA_BAD_PARAM)";
static const char __pyx_k_Exponential_Moving_Average[] = "Exponential Moving Average";
static const char __pyx_k_Function_set_function_args[] = "Function.set_function_args";
static const char __pyx_k_Output_scale_same_as_input[] = "Output scale same as input";
static const char __pyx_k_TA_SetOptInputParamInteger[] = "TA_SetOptInputParamInteger";
static const char __pyx_k_input_price_series_names_2[] = "__input_price_series_names";
static const char __pyx_k_stream_CDLCONCEALBABYSWALL[] = "stream_CDLCONCEALBABYSWALL";
static const char __pyx_k_stream_CDLGAPSIDESIDEWHITE[] = "stream_CDLGAPSIDESIDEWHITE";
static const char __pyx_k_stream_CDLRISEFALL3METHODS[] = "stream_CDLRISEFALL3METHODS";
static const char __pyx_k_stream_CDLXSIDEGAP3METHODS[] = "stream_CDLXSIDEGAP3METHODS";
static const char __pyx_k_stream_LINEARREG_INTERCEPT[] = "stream_LINEARREG_INTERCEPT";
static const char __pyx_k_INPUT_PRICE_SERIES_DEFAULTS[] = "__INPUT_PRICE_SERIES_DEFAULTS";
static const char __pyx_k_TA_GetOptInputParameterInfo[] = "TA_GetOptInputParameterInfo";
static const char __pyx_k_ta_getOptInputParameterInfo[] = "_ta_getOptInputParameterInfo";
static const char __pyx_k_MESA_Adaptive_Moving_Average[] = "MESA Adaptive Moving Average";
static const char __pyx_k_Unknown_Error_TA_UNKNOWN_ERR[] = "Unknown Error (TA_UNKNOWN_ERR)";
static const char __pyx_k_Allocation_Error_TA_ALLOC_ERR[] = "Allocation Error (TA_ALLOC_ERR)";
static const char __pyx_k_Function__get_opt_input_value[] = "_Function__get_opt_input_value";
static const char __pyx_k_Function___get_opt_input_value[] = "Function.__get_opt_input_value";
static const char __pyx_k_Not_Supported_TA_NOT_SUPPORTED[] = "Not Supported (TA_NOT_SUPPORTED)";
static const char __pyx_k_Values_represent_a_lower_limit[] = "Values represent a lower limit";
static const char __pyx_k_input_array_type_is_not_double[] = "input array type is not double";
static const char __pyx_k_Function__check_opt_input_value[] = "_Function__check_opt_input_value";
static const char __pyx_k_Function__initialize_function_i[] = "_Function__initialize_function_info";
static const char __pyx_k_Function__input_price_series_na[] = "_Function__input_price_series_names";
static const char __pyx_k_Function_has_an_unstable_period[] = "Function has an unstable period";
static const char __pyx_k_Kaufman_Adaptive_Moving_Average[] = "Kaufman Adaptive Moving Average";
static const char __pyx_k_Out_of_Range_Start_Index_TA_OUT[] = "Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)";
static const char __pyx_k_TA_RestoreCandleDefaultSettings[] = "TA_RestoreCandleDefaultSettings";
static const char __pyx_k_This_is_a_pythonic_wrapper_arou[] = "\n    This is a pythonic wrapper around TALIB's abstract interface. It is\n    intended to simplify using individual TALIB functions by providing a\n    unified interface for setting/controlling input data, setting function\n    parameters and retrieving results. Input data consists of a ``dict`` of\n    ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n    array for each of open, high, low, close and volume. This can be set with\n    the set_input_arrays() method. Which keyed array(s) are used as inputs when\n    calling the function is controlled using the input_names property.\n\n    This class gets initialized with a TALIB function name and optionally an\n    input_arrays object. It provides the following primary functions for\n    setting inputs and retrieving results:\n\n    ---- input_array/TA-function-parameter set-only functions -----\n    - set_input_arrays(input_arrays)\n    - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n    Documentation for param_args_andor_kwargs can be seen by printing the\n    Function instance or programatically via the info, input_names and\n    parameters properties.\n\n    ----- result-returning functions -----\n    - the outputs property wraps a method which ensures results are always valid\n    - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n    - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n    ";
static const char __pyx_k_Values_represent_an_upper_limit[] = "Values represent an upper limit";
static const char __pyx_k_integer_values_are_100_0_or_100[] = "integer (values are -100, 0 or 100)";
static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import";
static const char __pyx_k_s_function_failed_with_error_co[] = "%s function failed with error code %s: %s";
static const char __pyx_k_ta_restore_candle_default_setti[] = "_ta_restore_candle_default_settings";
static const char __pyx_k_Bull_Bear_Pattern_Bearish_0_Neut[] = "Bull/Bear Pattern (Bearish < 0, Neutral = 0, Bullish > 0)";
static const char __pyx_k_Double_Exponential_Moving_Averag[] = "Double Exponential Moving Average";
static const char __pyx_k_Function_Not_Found_TA_FUNC_NOT_F[] = "Function Not Found (TA_FUNC_NOT_FOUND)";
static const char __pyx_k_Function___check_opt_input_value[] = "Function.__check_opt_input_value";
static const char __pyx_k_Function___initialize_function_i[] = "Function.__initialize_function_info";
static const char __pyx_k_Function___input_price_series_na[] = "Function.__input_price_series_names";
static const char __pyx_k_Group_Not_Found_TA_GROUP_NOT_FOU[] = "Group Not Found (TA_GROUP_NOT_FOUND)";
static const char __pyx_k_Input_Not_All_Initialized_TA_INP[] = "Input Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)";
static const char __pyx_k_Internal_Error_TA_INTERNAL_ERROR[] = "Internal Error (TA_INTERNAL_ERROR)";
static const char __pyx_k_Invalid_Handle_TA_INVALID_HANDLE[] = "Invalid Handle (TA_INVALID_HANDLE)";
static const char __pyx_k_Invalid_List_Type_TA_INVALID_LIS[] = "Invalid List Type (TA_INVALID_LIST_TYPE)";
static const char __pyx_k_Invalid_Parameter_Function_TA_IN[] = "Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)";
static const char __pyx_k_Invalid_Parameter_Holder_TA_INVA[] = "Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)";
static const char __pyx_k_Invalid_Parameter_Holder_Type_TA[] = "Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)";
static const char __pyx_k_Invalid_parameter_value_for_s_ex[] = "Invalid parameter value for %s (expected %s, got %s)";
static const char __pyx_k_Library_Not_Initialized_TA_LIB_N[] = "Library Not Initialized (TA_LIB_NOT_INITIALIZE)";
static const char __pyx_k_Not_enough_price_arguments_expec[] = "Not enough price arguments: expected %d (%s)";
static const char __pyx_k_Out_of_Range_End_Index_TA_OUT_OF[] = "Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)";
static const char __pyx_k_Output_Not_All_Initialized_TA_OU[] = "Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)";
static const char __pyx_k_Strength_Pattern_200_100_Bearish[] = "Strength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)";
static const char __pyx_k_Too_many_price_arguments_expecte[] = "Too many price arguments: expected %d (%s)";
static const char __pyx_k_Triple_Exponential_Moving_Averag[] = "Triple Exponential Moving Average";
static const char __pyx_k_Triple_Generalized_Double_Expone[] = "Triple Generalized Double Exponential Moving Average";
static const char __pyx_k_input_array_has_wrong_dimensions[] = "input array has wrong dimensions";
static const char __pyx_k_input_array_lengths_are_differen[] = "input array lengths are different";
static const char __pyx_k_input_arrays_parameter_missing_r[] = "input_arrays parameter missing required data key%s: %s";
static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import";
static PyObject *__pyx_kp_s_3;
static PyObject *__pyx_n_s_ACOS;
static PyObject *__pyx_n_s_AD;
static PyObject *__pyx_n_s_ADD;
static PyObject *__pyx_n_s_ADOSC;
static PyObject *__pyx_n_s_ADX;
static PyObject *__pyx_n_s_ADXR;
static PyObject *__pyx_n_s_ALL;
static PyObject *__pyx_n_s_APO;
static PyObject *__pyx_n_s_AROON;
static PyObject *__pyx_n_s_AROONOSC;
static PyObject *__pyx_n_s_ARRAY_TYPES;
static PyObject *__pyx_n_s_ASIN;
static PyObject *__pyx_n_s_ATAN;
static PyObject *__pyx_n_s_ATR;
static PyObject *__pyx_n_s_AVGPRICE;
static PyObject *__pyx_n_s_AllCandleSettings;
static PyObject *__pyx_kp_s_Allocation_Error_TA_ALLOC_ERR;
static PyObject *__pyx_n_s_BBANDS;
static PyObject *__pyx_n_s_BETA;
static PyObject *__pyx_n_s_BOP;
static PyObject *__pyx_kp_s_Bad_Object_TA_BAD_OBJECT;
static PyObject *__pyx_kp_s_Bad_Parameter_TA_BAD_PARAM;
static PyObject *__pyx_n_s_BodyDoji;
static PyObject *__pyx_n_s_BodyLong;
static PyObject *__pyx_n_s_BodyShort;
static PyObject *__pyx_n_s_BodyVeryLong;
static PyObject *__pyx_kp_s_Bull_Bear_Pattern_Bearish_0_Neut;
static PyObject *__pyx_n_s_CCI;
static PyObject *__pyx_n_s_CDL2CROWS;
static PyObject *__pyx_n_s_CDL3BLACKCROWS;
static PyObject *__pyx_n_s_CDL3INSIDE;
static PyObject *__pyx_n_s_CDL3LINESTRIKE;
static PyObject *__pyx_n_s_CDL3OUTSIDE;
static PyObject *__pyx_n_s_CDL3STARSINSOUTH;
static PyObject *__pyx_n_s_CDL3WHITESOLDIERS;
static PyObject *__pyx_n_s_CDLABANDONEDBABY;
static PyObject *__pyx_n_s_CDLADVANCEBLOCK;
static PyObject *__pyx_n_s_CDLBELTHOLD;
static PyObject *__pyx_n_s_CDLBREAKAWAY;
static PyObject *__pyx_n_s_CDLCLOSINGMARUBOZU;
static PyObject *__pyx_n_s_CDLCONCEALBABYSWALL;
static PyObject *__pyx_n_s_CDLCOUNTERATTACK;
static PyObject *__pyx_n_s_CDLDARKCLOUDCOVER;
static PyObject *__pyx_n_s_CDLDOJI;
static PyObject *__pyx_n_s_CDLDOJISTAR;
static PyObject *__pyx_n_s_CDLDRAGONFLYDOJI;
static PyObject *__pyx_n_s_CDLENGULFING;
static PyObject *__pyx_n_s_CDLEVENINGDOJISTAR;
static PyObject *__pyx_n_s_CDLEVENINGSTAR;
static PyObject *__pyx_n_s_CDLGAPSIDESIDEWHITE;
static PyObject *__pyx_n_s_CDLGRAVESTONEDOJI;
static PyObject *__pyx_n_s_CDLHAMMER;
static PyObject *__pyx_n_s_CDLHANGINGMAN;
static PyObject *__pyx_n_s_CDLHARAMI;
static PyObject *__pyx_n_s_CDLHARAMICROSS;
static PyObject *__pyx_n_s_CDLHIGHWAVE;
static PyObject *__pyx_n_s_CDLHIKKAKE;
static PyObject *__pyx_n_s_CDLHIKKAKEMOD;
static PyObject *__pyx_n_s_CDLHOMINGPIGEON;
static PyObject *__pyx_n_s_CDLIDENTICAL3CROWS;
static PyObject *__pyx_n_s_CDLINNECK;
static PyObject *__pyx_n_s_CDLINVERTEDHAMMER;
static PyObject *__pyx_n_s_CDLKICKING;
static PyObject *__pyx_n_s_CDLKICKINGBYLENGTH;
static PyObject *__pyx_n_s_CDLLADDERBOTTOM;
static PyObject *__pyx_n_s_CDLLONGLEGGEDDOJI;
static PyObject *__pyx_n_s_CDLLONGLINE;
static PyObject *__pyx_n_s_CDLMARUBOZU;
static PyObject *__pyx_n_s_CDLMATCHINGLOW;
static PyObject *__pyx_n_s_CDLMATHOLD;
static PyObject *__pyx_n_s_CDLMORNINGDOJISTAR;
static PyObject *__pyx_n_s_CDLMORNINGSTAR;
static PyObject *__pyx_n_s_CDLONNECK;
static PyObject *__pyx_n_s_CDLPIERCING;
static PyObject *__pyx_n_s_CDLRICKSHAWMAN;
static PyObject *__pyx_n_s_CDLRISEFALL3METHODS;
static PyObject *__pyx_n_s_CDLSEPARATINGLINES;
static PyObject *__pyx_n_s_CDLSHOOTINGSTAR;
static PyObject *__pyx_n_s_CDLSHORTLINE;
static PyObject *__pyx_n_s_CDLSPINNINGTOP;
static PyObject *__pyx_n_s_CDLSTALLEDPATTERN;
static PyObject *__pyx_n_s_CDLSTICKSANDWICH;
static PyObject *__pyx_n_s_CDLTAKURI;
static PyObject *__pyx_n_s_CDLTASUKIGAP;
static PyObject *__pyx_n_s_CDLTHRUSTING;
static PyObject *__pyx_n_s_CDLTRISTAR;
static PyObject *__pyx_n_s_CDLUNIQUE3RIVER;
static PyObject *__pyx_n_s_CDLUPSIDEGAP2CROWS;
static PyObject *__pyx_n_s_CDLXSIDEGAP3METHODS;
static PyObject *__pyx_n_s_CEIL;
static PyObject *__pyx_n_s_CMO;
static PyObject *__pyx_n_s_CORREL;
static PyObject *__pyx_n_s_COS;
static PyObject *__pyx_n_s_COSH;
static PyObject *__pyx_n_s_CandleSettingType;
static PyObject *__pyx_n_s_DEMA;
static PyObject *__pyx_n_s_DIV;
static PyObject *__pyx_n_s_DX;
static PyObject *__pyx_kp_s_Dashed_Line;
static PyObject *__pyx_n_s_DataFrame;
static PyObject *__pyx_n_s_Dot;
static PyObject *__pyx_kp_s_Dotted_Line;
static PyObject *__pyx_kp_s_Double_Exponential_Moving_Averag;
static PyObject *__pyx_n_s_EMA;
static PyObject *__pyx_n_s_EXP;
static PyObject *__pyx_n_s_Equal;
static PyObject *__pyx_kp_s_Exponential_Moving_Average;
static PyObject *__pyx_n_s_FLOOR;
static PyObject *__pyx_n_s_Far;
static PyObject *__pyx_n_s_Function;
static PyObject *__pyx_kp_s_Function_Not_Found_TA_FUNC_NOT_F;
static PyObject *__pyx_n_s_Function___call;
static PyObject *__pyx_n_s_Function___call_function;
static PyObject *__pyx_n_s_Function___check_opt_input_value;
static PyObject *__pyx_n_s_Function___get_opt_input_value;
static PyObject *__pyx_n_s_Function___init;
static PyObject *__pyx_n_s_Function___initialize_function_i;
static PyObject *__pyx_n_s_Function___input_price_series_na;
static PyObject *__pyx_n_s_Function___repr;
static PyObject *__pyx_n_s_Function___str;
static PyObject *__pyx_n_s_Function___unicode;
static PyObject *__pyx_n_s_Function__call_function;
static PyObject *__pyx_n_s_Function__check_opt_input_value;
static PyObject *__pyx_n_s_Function__get_opt_input_value;
static PyObject *__pyx_n_s_Function__info;
static PyObject *__pyx_n_s_Function__initialize_function_i;
static PyObject *__pyx_n_s_Function__input_arrays;
static PyObject *__pyx_n_s_Function__input_names;
static PyObject *__pyx_n_s_Function__input_price_series_na;
static PyObject *__pyx_n_s_Function__name;
static PyObject *__pyx_n_s_Function__namestr;
static PyObject *__pyx_n_s_Function__opt_inputs;
static PyObject *__pyx_n_s_Function__outputs;
static PyObject *__pyx_n_s_Function__outputs_valid;
static PyObject *__pyx_n_s_Function_function_flags;
static PyObject *__pyx_n_s_Function_get_input_arrays;
static PyObject *__pyx_n_s_Function_get_input_names;
static PyObject *__pyx_n_s_Function_get_parameters;
static PyObject *__pyx_kp_s_Function_has_an_unstable_period;
static PyObject *__pyx_n_s_Function_info;
static PyObject *__pyx_n_s_Function_lookback;
static PyObject *__pyx_n_s_Function_output_flags;
static PyObject *__pyx_n_s_Function_output_names;
static PyObject *__pyx_n_s_Function_outputs;
static PyObject *__pyx_n_s_Function_run;
static PyObject *__pyx_n_s_Function_set_function_args;
static PyObject *__pyx_n_s_Function_set_input_arrays;
static PyObject *__pyx_n_s_Function_set_input_names;
static PyObject *__pyx_n_s_Function_set_parameters;
static PyObject *__pyx_kp_s_Group_Not_Found_TA_GROUP_NOT_FOU;
static PyObject *__pyx_n_s_HT_DCPERIOD;
static PyObject *__pyx_n_s_HT_DCPHASE;
static PyObject *__pyx_n_s_HT_PHASOR;
static PyObject *__pyx_n_s_HT_SINE;
static PyObject *__pyx_n_s_HT_TRENDLINE;
static PyObject *__pyx_n_s_HT_TRENDMODE;
static PyObject *__pyx_n_s_HighLow;
static PyObject *__pyx_n_s_Histogram;
static PyObject *__pyx_n_s_INPUT_ARRAYS_TYPES;
static PyObject *__pyx_n_s_INPUT_PRICE_SERIES_DEFAULTS;
static PyObject *__pyx_n_s_ImportError;
static PyObject *__pyx_n_s_IndexError;
static PyObject *__pyx_kp_s_Input_Not_All_Initialized_TA_INP;
static PyObject *__pyx_kp_s_Inputs;
static PyObject *__pyx_kp_s_Internal_Error_TA_INTERNAL_ERROR;
static PyObject *__pyx_kp_s_Invalid_Handle_TA_INVALID_HANDLE;
static PyObject *__pyx_kp_s_Invalid_List_Type_TA_INVALID_LIS;
static PyObject *__pyx_kp_s_Invalid_Parameter_Function_TA_IN;
static PyObject *__pyx_kp_s_Invalid_Parameter_Holder_TA_INVA;
static PyObject *__pyx_kp_s_Invalid_Parameter_Holder_Type_TA;
static PyObject *__pyx_kp_s_Invalid_parameter_value_for_s_ex;
static PyObject *__pyx_n_s_KAMA;
static PyObject *__pyx_kp_s_Kaufman_Adaptive_Moving_Average;
static PyObject *__pyx_n_s_LINEARREG;
static PyObject *__pyx_n_s_LINEARREG_ANGLE;
static PyObject *__pyx_n_s_LINEARREG_INTERCEPT;
static PyObject *__pyx_n_s_LINEARREG_SLOPE;
static PyObject *__pyx_n_s_LN;
static PyObject *__pyx_n_s_LOG10;
static PyObject *__pyx_kp_s_Library_Not_Initialized_TA_LIB_N;
static PyObject *__pyx_n_s_Line;
static PyObject *__pyx_n_s_MA;
static PyObject *__pyx_n_s_MACD;
static PyObject *__pyx_n_s_MACDEXT;
static PyObject *__pyx_n_s_MACDFIX;
static PyObject *__pyx_n_s_MAMA;
static PyObject *__pyx_n_s_MAVP;
static PyObject *__pyx_n_s_MAX;
static PyObject *__pyx_n_s_MAXINDEX;
static PyObject *__pyx_n_s_MA_Type;
static PyObject *__pyx_n_s_MA_Type___getitem;
static PyObject *__pyx_n_s_MA_Type___init;
static PyObject *__pyx_n_s_MEDPRICE;
static PyObject *__pyx_kp_s_MESA_Adaptive_Moving_Average;
static PyObject *__pyx_n_s_MFI;
static PyObject *__pyx_n_s_MIDPOINT;
static PyObject *__pyx_n_s_MIDPRICE;
static PyObject *__pyx_n_s_MIN;
static PyObject *__pyx_n_s_MININDEX;
static PyObject *__pyx_n_s_MINMAX;
static PyObject *__pyx_n_s_MINMAXINDEX;
static PyObject *__pyx_n_s_MINUS_DI;
static PyObject *__pyx_n_s_MINUS_DM;
static PyObject *__pyx_n_s_MOM;
static PyObject *__pyx_n_s_MULT;
static PyObject *__pyx_n_s_NATR;
static PyObject *__pyx_n_s_NONE;
static PyObject *__pyx_n_s_Near;
static PyObject *__pyx_kp_s_Not_Supported_TA_NOT_SUPPORTED;
static PyObject *__pyx_kp_s_Not_enough_price_arguments_expec;
static PyObject *__pyx_n_s_OBV;
static PyObject *__pyx_n_s_OrderedDict;
static PyObject *__pyx_kp_s_Out_of_Range_End_Index_TA_OUT_OF;
static PyObject *__pyx_kp_s_Out_of_Range_Start_Index_TA_OUT;
static PyObject *__pyx_kp_s_Output_Not_All_Initialized_TA_OU;
static PyObject *__pyx_kp_s_Output_can_be_negative;
static PyObject *__pyx_kp_s_Output_can_be_positive;
static PyObject *__pyx_kp_s_Output_can_be_zero;
static PyObject *__pyx_kp_s_Output_is_a_candlestick;
static PyObject *__pyx_kp_s_Output_is_over_volume;
static PyObject *__pyx_kp_s_Output_scale_same_as_input;
static PyObject *__pyx_kp_s_Outputs;
static PyObject *__pyx_n_s_PANDAS_DATAFRAME;
static PyObject *__pyx_n_s_PANDAS_SERIES;
static PyObject *__pyx_n_s_PLUS_DI;
static PyObject *__pyx_n_s_PLUS_DM;
static PyObject *__pyx_n_s_POLARS_DATAFRAME;
static PyObject *__pyx_n_s_POLARS_SERIES;
static PyObject *__pyx_n_s_PPO;
static PyObject *__pyx_kp_s_Parameters;
static PyObject *__pyx_kp_s_Pattern_Bool;
static PyObject *__pyx_n_s_ROC;
static PyObject *__pyx_n_s_ROCP;
static PyObject *__pyx_n_s_ROCR;
static PyObject *__pyx_n_s_ROCR100;
static PyObject *__pyx_n_s_RSI;
static PyObject *__pyx_n_s_RangeType;
static PyObject *__pyx_n_s_RealBody;
static PyObject *__pyx_n_s_SAR;
static PyObject *__pyx_n_s_SAREXT;
static PyObject *__pyx_n_s_SIN;
static PyObject *__pyx_n_s_SINH;
static PyObject *__pyx_n_s_SMA;
static PyObject *__pyx_n_s_SQRT;
static PyObject *__pyx_n_s_STDDEV;
static PyObject *__pyx_n_s_STOCH;
static PyObject *__pyx_n_s_STOCHF;
static PyObject *__pyx_n_s_STOCHRSI;
static PyObject *__pyx_n_s_SUB;
static PyObject *__pyx_n_s_SUM;
static PyObject *__pyx_n_s_Series;
static PyObject *__pyx_n_s_ShadowLong;
static PyObject *__pyx_n_s_ShadowShort;
static PyObject *__pyx_n_s_ShadowVeryLong;
static PyObject *__pyx_n_s_ShadowVeryShort;
static PyObject *__pyx_n_s_Shadows;
static PyObject *__pyx_kp_s_Simple_Moving_Average;
static PyObject *__pyx_kp_s_Strength_Pattern_200_100_Bearish;
static PyObject *__pyx_n_s_T3;
static PyObject *__pyx_n_s_TAN;
static PyObject *__pyx_n_s_TANH;
static PyObject *__pyx_n_s_TA_ACOS;
static PyObject *__pyx_n_s_TA_AD;
static PyObject *__pyx_n_s_TA_ADD;
static PyObject *__pyx_n_s_TA_ADOSC;
static PyObject *__pyx_n_s_TA_ADX;
static PyObject *__pyx_n_s_TA_ADXR;
static PyObject *__pyx_n_s_TA_APO;
static PyObject *__pyx_n_s_TA_AROON;
static PyObject *__pyx_n_s_TA_AROONOSC;
static PyObject *__pyx_n_s_TA_ASIN;
static PyObject *__pyx_n_s_TA_ATAN;
static PyObject *__pyx_n_s_TA_ATR;
static PyObject *__pyx_n_s_TA_AVGPRICE;
static PyObject *__pyx_n_s_TA_BBANDS;
static PyObject *__pyx_n_s_TA_BETA;
static PyObject *__pyx_n_s_TA_BOP;
static PyObject *__pyx_n_s_TA_CCI;
static PyObject *__pyx_n_s_TA_CDL2CROWS;
static PyObject *__pyx_n_s_TA_CDL3BLACKCROWS;
static PyObject *__pyx_n_s_TA_CDL3INSIDE;
static PyObject *__pyx_n_s_TA_CDL3LINESTRIKE;
static PyObject *__pyx_n_s_TA_CDL3OUTSIDE;
static PyObject *__pyx_n_s_TA_CDL3STARSINSOUTH;
static PyObject *__pyx_n_s_TA_CDL3WHITESOLDIERS;
static PyObject *__pyx_n_s_TA_CDLABANDONEDBABY;
static PyObject *__pyx_n_s_TA_CDLADVANCEBLOCK;
static PyObject *__pyx_n_s_TA_CDLBELTHOLD;
static PyObject *__pyx_n_s_TA_CDLBREAKAWAY;
static PyObject *__pyx_n_s_TA_CDLCLOSINGMARUBOZU;
static PyObject *__pyx_n_s_TA_CDLCONCEALBABYSWALL;
static PyObject *__pyx_n_s_TA_CDLCOUNTERATTACK;
static PyObject *__pyx_n_s_TA_CDLDARKCLOUDCOVER;
static PyObject *__pyx_n_s_TA_CDLDOJI;
static PyObject *__pyx_n_s_TA_CDLDOJISTAR;
static PyObject *__pyx_n_s_TA_CDLDRAGONFLYDOJI;
static PyObject *__pyx_n_s_TA_CDLENGULFING;
static PyObject *__pyx_n_s_TA_CDLEVENINGDOJISTAR;
static PyObject *__pyx_n_s_TA_CDLEVENINGSTAR;
static PyObject *__pyx_n_s_TA_CDLGAPSIDESIDEWHITE;
static PyObject *__pyx_n_s_TA_CDLGRAVESTONEDOJI;
static PyObject *__pyx_n_s_TA_CDLHAMMER;
static PyObject *__pyx_n_s_TA_CDLHANGINGMAN;
static PyObject *__pyx_n_s_TA_CDLHARAMI;
static PyObject *__pyx_n_s_TA_CDLHARAMICROSS;
static PyObject *__pyx_n_s_TA_CDLHIGHWAVE;
static PyObject *__pyx_n_s_TA_CDLHIKKAKE;
static PyObject *__pyx_n_s_TA_CDLHIKKAKEMOD;
static PyObject *__pyx_n_s_TA_CDLHOMINGPIGEON;
static PyObject *__pyx_n_s_TA_CDLIDENTICAL3CROWS;
static PyObject *__pyx_n_s_TA_CDLINNECK;
static PyObject *__pyx_n_s_TA_CDLINVERTEDHAMMER;
static PyObject *__pyx_n_s_TA_CDLKICKING;
static PyObject *__pyx_n_s_TA_CDLKICKINGBYLENGTH;
static PyObject *__pyx_n_s_TA_CDLLADDERBOTTOM;
static PyObject *__pyx_n_s_TA_CDLLONGLEGGEDDOJI;
static PyObject *__pyx_n_s_TA_CDLLONGLINE;
static PyObject *__pyx_n_s_TA_CDLMARUBOZU;
static PyObject *__pyx_n_s_TA_CDLMATCHINGLOW;
static PyObject *__pyx_n_s_TA_CDLMATHOLD;
static PyObject *__pyx_n_s_TA_CDLMORNINGDOJISTAR;
static PyObject *__pyx_n_s_TA_CDLMORNINGSTAR;
static PyObject *__pyx_n_s_TA_CDLONNECK;
static PyObject *__pyx_n_s_TA_CDLPIERCING;
static PyObject *__pyx_n_s_TA_CDLRICKSHAWMAN;
static PyObject *__pyx_n_s_TA_CDLRISEFALL3METHODS;
static PyObject *__pyx_n_s_TA_CDLSEPARATINGLINES;
static PyObject *__pyx_n_s_TA_CDLSHOOTINGSTAR;
static PyObject *__pyx_n_s_TA_CDLSHORTLINE;
static PyObject *__pyx_n_s_TA_CDLSPINNINGTOP;
static PyObject *__pyx_n_s_TA_CDLSTALLEDPATTERN;
static PyObject *__pyx_n_s_TA_CDLSTICKSANDWICH;
static PyObject *__pyx_n_s_TA_CDLTAKURI;
static PyObject *__pyx_n_s_TA_CDLTASUKIGAP;
static PyObject *__pyx_n_s_TA_CDLTHRUSTING;
static PyObject *__pyx_n_s_TA_CDLTRISTAR;
static PyObject *__pyx_n_s_TA_CDLUNIQUE3RIVER;
static PyObject *__pyx_n_s_TA_CDLUPSIDEGAP2CROWS;
static PyObject *__pyx_n_s_TA_CDLXSIDEGAP3METHODS;
static PyObject *__pyx_n_s_TA_CEIL;
static PyObject *__pyx_n_s_TA_CMO;
static PyObject *__pyx_n_s_TA_CORREL;
static PyObject *__pyx_n_s_TA_COS;
static PyObject *__pyx_n_s_TA_COSH;
static PyObject *__pyx_n_s_TA_DEMA;
static PyObject *__pyx_n_s_TA_DIV;
static PyObject *__pyx_n_s_TA_DX;
static PyObject *__pyx_n_s_TA_EMA;
static PyObject *__pyx_n_s_TA_EXP;
static PyObject *__pyx_n_s_TA_FLOOR;
static PyObject *__pyx_n_s_TA_FUNCTION_NAMES;
static PyObject *__pyx_n_s_TA_FUNC_FLAGS;
static PyObject *__pyx_n_s_TA_FuncTableAlloc;
static PyObject *__pyx_n_s_TA_FuncTableFree;
static PyObject *__pyx_n_s_TA_GetFuncHandle;
static PyObject *__pyx_n_s_TA_GetFuncInfo;
static PyObject *__pyx_n_s_TA_GetInputParameterInfo;
static PyObject *__pyx_n_s_TA_GetLookback;
static PyObject *__pyx_n_s_TA_GetOptInputParameterInfo;
static PyObject *__pyx_n_s_TA_GetOutputParameterInfo;
static PyObject *__pyx_n_s_TA_GroupTableAlloc;
static PyObject *__pyx_n_s_TA_GroupTableFree;
static PyObject *__pyx_n_s_TA_HT_DCPERIOD;
static PyObject *__pyx_n_s_TA_HT_DCPHASE;
static PyObject *__pyx_n_s_TA_HT_PHASOR;
static PyObject *__pyx_n_s_TA_HT_SINE;
static PyObject *__pyx_n_s_TA_HT_TRENDLINE;
static PyObject *__pyx_n_s_TA_HT_TRENDMODE;
static PyObject *__pyx_n_s_TA_INPUT_FLAGS;
static PyObject *__pyx_n_s_TA_Initialize;
static PyObject *__pyx_n_s_TA_KAMA;
static PyObject *__pyx_n_s_TA_LINEARREG;
static PyObject *__pyx_n_s_TA_LINEARREG_ANGLE;
static PyObject *__pyx_n_s_TA_LINEARREG_INTERCEPT;
static PyObject *__pyx_n_s_TA_LINEARREG_SLOPE;
static PyObject *__pyx_n_s_TA_LN;
static PyObject *__pyx_n_s_TA_LOG10;
static PyObject *__pyx_n_s_TA_MA;
static PyObject *__pyx_n_s_TA_MACD;
static PyObject *__pyx_n_s_TA_MACDEXT;
static PyObject *__pyx_n_s_TA_MACDFIX;
static PyObject *__pyx_n_s_TA_MAMA;
static PyObject *__pyx_n_s_TA_MAVP;
static PyObject *__pyx_n_s_TA_MAX;
static PyObject *__pyx_n_s_TA_MAXINDEX;
static PyObject *__pyx_n_s_TA_MEDPRICE;
static PyObject *__pyx_n_s_TA_MFI;
static PyObject *__pyx_n_s_TA_MIDPOINT;
static PyObject *__pyx_n_s_TA_MIDPRICE;
static PyObject *__pyx_n_s_TA_MIN;
static PyObject *__pyx_n_s_TA_MININDEX;
static PyObject *__pyx_n_s_TA_MINMAX;
static PyObject *__pyx_n_s_TA_MINMAXINDEX;
static PyObject *__pyx_n_s_TA_MINUS_DI;
static PyObject *__pyx_n_s_TA_MINUS_DM;
static PyObject *__pyx_n_s_TA_MOM;
static PyObject *__pyx_n_s_TA_MULT;
static PyObject *__pyx_n_s_TA_NATR;
static PyObject *__pyx_n_s_TA_OBV;
static PyObject *__pyx_n_s_TA_OUTPUT_FLAGS;
static PyObject *__pyx_n_s_TA_PLUS_DI;
static PyObject *__pyx_n_s_TA_PLUS_DM;
static PyObject *__pyx_n_s_TA_PPO;
static PyObject *__pyx_n_s_TA_ParamHolderAlloc;
static PyObject *__pyx_n_s_TA_ParamHolderFree;
static PyObject *__pyx_n_s_TA_ROC;
static PyObject *__pyx_n_s_TA_ROCP;
static PyObject *__pyx_n_s_TA_ROCR;
static PyObject *__pyx_n_s_TA_ROCR100;
static PyObject *__pyx_n_s_TA_RSI;
static PyObject *__pyx_n_s_TA_RestoreCandleDefaultSettings;
static PyObject *__pyx_n_s_TA_SAR;
static PyObject *__pyx_n_s_TA_SAREXT;
static PyObject *__pyx_n_s_TA_SIN;
static PyObject *__pyx_n_s_TA_SINH;
static PyObject *__pyx_n_s_TA_SMA;
static PyObject *__pyx_n_s_TA_SQRT;
static PyObject *__pyx_n_s_TA_STDDEV;
static PyObject *__pyx_n_s_TA_STOCH;
static PyObject *__pyx_n_s_TA_STOCHF;
static PyObject *__pyx_n_s_TA_STOCHRSI;
static PyObject *__pyx_n_s_TA_SUB;
static PyObject *__pyx_n_s_TA_SUM;
static PyObject *__pyx_n_s_TA_SetCandleSettings;
static PyObject *__pyx_n_s_TA_SetCompatibility;
static PyObject *__pyx_n_s_TA_SetOptInputParamInteger;
static PyObject *__pyx_n_s_TA_SetOptInputParamReal;
static PyObject *__pyx_n_s_TA_SetUnstablePeriod;
static PyObject *__pyx_n_s_TA_Shutdown;
static PyObject *__pyx_n_s_TA_T3;
static PyObject *__pyx_n_s_TA_TAN;
static PyObject *__pyx_n_s_TA_TANH;
static PyObject *__pyx_n_s_TA_TEMA;
static PyObject *__pyx_n_s_TA_TRANGE;
static PyObject *__pyx_n_s_TA_TRIMA;
static PyObject *__pyx_n_s_TA_TRIX;
static PyObject *__pyx_n_s_TA_TSF;
static PyObject *__pyx_n_s_TA_TYPPRICE;
static PyObject *__pyx_n_s_TA_ULTOSC;
static PyObject *__pyx_n_s_TA_VAR;
static PyObject *__pyx_n_s_TA_WCLPRICE;
static PyObject *__pyx_n_s_TA_WILLR;
static PyObject *__pyx_n_s_TA_WMA;
static PyObject *__pyx_n_s_TEMA;
static PyObject *__pyx_n_s_TRANGE;
static PyObject *__pyx_n_s_TRIMA;
static PyObject *__pyx_n_s_TRIX;
static PyObject *__pyx_n_s_TSF;
static PyObject *__pyx_n_s_TYPPRICE;
static PyObject *__pyx_kp_s_This_is_a_pythonic_wrapper_arou;
static PyObject *__pyx_kp_s_Too_many_price_arguments_expecte;
static PyObject *__pyx_kp_s_Triangular_Moving_Average;
static PyObject *__pyx_kp_s_Triple_Exponential_Moving_Averag;
static PyObject *__pyx_kp_s_Triple_Generalized_Double_Expone;
static PyObject *__pyx_n_s_TypeError;
static PyObject *__pyx_n_s_ULTOSC;
static PyObject *__pyx_kp_s_Unknown_Error;
static PyObject *__pyx_kp_s_Unknown_Error_TA_UNKNOWN_ERR;
static PyObject *__pyx_n_s_VAR;
static PyObject *__pyx_kp_s_Values_represent_a_lower_limit;
static PyObject *__pyx_kp_s_Values_represent_an_upper_limit;
static PyObject *__pyx_n_s_WCLPRICE;
static PyObject *__pyx_n_s_WILLR;
static PyObject *__pyx_n_s_WMA;
static PyObject *__pyx_kp_s_Weighted_Moving_Average;
static PyObject *__pyx_kp_s__10;
static PyObject *__pyx_kp_s__11;
static PyObject *__pyx_kp_s__5;
static PyObject *__pyx_kp_s__6;
static PyObject *__pyx_kp_s__8;
static PyObject *__pyx_kp_s__9;
static PyObject *__pyx_n_s_acceleration;
static PyObject *__pyx_n_s_accelerationinitlong;
static PyObject *__pyx_n_s_accelerationinitshort;
static PyObject *__pyx_n_s_accelerationlong;
static PyObject *__pyx_n_s_accelerationmaxlong;
static PyObject *__pyx_n_s_accelerationmaxshort;
static PyObject *__pyx_n_s_accelerationshort;
static PyObject *__pyx_n_s_all;
static PyObject *__pyx_kp_s_any_ndarray;
static PyObject *__pyx_n_s_append;
static PyObject *__pyx_n_s_arg;
static PyObject *__pyx_n_s_args;
static PyObject *__pyx_n_s_ascii;
static PyObject *__pyx_n_s_astype;
static PyObject *__pyx_n_s_avgperiod;
static PyObject *__pyx_n_s_b;
static PyObject *__pyx_n_s_begidx;
static PyObject *__pyx_n_s_bytes2str;
static PyObject *__pyx_n_s_call;
static PyObject *__pyx_n_s_call_function;
static PyObject *__pyx_n_s_check_opt_input_value;
static PyObject *__pyx_n_s_cline_in_traceback;
static PyObject *__pyx_n_s_clone;
static PyObject *__pyx_n_s_close;
static PyObject *__pyx_n_s_close_data;
static PyObject *__pyx_n_s_collections;
static PyObject *__pyx_n_s_column_stack;
static PyObject *__pyx_n_s_columns;
static PyObject *__pyx_n_s_copy;
static PyObject *__pyx_n_s_decode;
static PyObject *__pyx_n_s_default_value;
static PyObject *__pyx_n_s_defaults;
static PyObject *__pyx_n_s_display_name;
static PyObject *__pyx_kp_s_display_name_s_group_s;
static PyObject *__pyx_n_s_doc;
static PyObject *__pyx_n_s_docs;
static PyObject *__pyx_n_s_documentation;
static PyObject *__pyx_n_s_empty;
static PyObject *__pyx_n_s_endidx;
static PyObject *__pyx_n_s_enumerate;
static PyObject *__pyx_n_s_factor;
static PyObject *__pyx_n_s_fastd_matype;
static PyObject *__pyx_n_s_fastd_period;
static PyObject *__pyx_n_s_fastk_period;
static PyObject *__pyx_n_s_fastlimit;
static PyObject *__pyx_n_s_fastmatype;
static PyObject *__pyx_n_s_fastperiod;
static PyObject *__pyx_n_s_flag;
static PyObject *__pyx_n_s_flags;
static PyObject *__pyx_n_s_flags_lookup_dict;
static PyObject *__pyx_n_s_func_args;
static PyObject *__pyx_n_s_func_info;
static PyObject *__pyx_n_s_func_line;
static PyObject *__pyx_n_s_func_object;
static PyObject *__pyx_n_s_function_flags;
static PyObject *__pyx_n_s_function_name;
static PyObject *__pyx_n_s_functions;
static PyObject *__pyx_n_s_get_defaults_and_docs;
static PyObject *__pyx_n_s_get_flags;
static PyObject *__pyx_n_s_get_input_arrays;
static PyObject *__pyx_n_s_get_input_names;
static PyObject *__pyx_n_s_get_opt_input_value;
static PyObject *__pyx_n_s_get_parameters;
static PyObject *__pyx_n_s_getitem;
static PyObject *__pyx_n_s_group;
static PyObject *__pyx_n_s_groups;
static PyObject *__pyx_n_s_help;
static PyObject *__pyx_n_s_high;
static PyObject *__pyx_n_s_high_data;
static PyObject *__pyx_n_s_holder;
static PyObject *__pyx_n_s_i;
static PyObject *__pyx_n_s_id;
static PyObject *__pyx_n_s_idx;
static PyObject *__pyx_n_s_import;
static PyObject *__pyx_n_s_in;
static PyObject *__pyx_n_s_index;
static PyObject *__pyx_n_s_info;
static PyObject *__pyx_n_s_init;
static PyObject *__pyx_n_s_initialize_function_info;
static PyObject *__pyx_kp_s_input_array_has_wrong_dimensions;
static PyObject *__pyx_kp_s_input_array_lengths_are_differen;
static PyObject *__pyx_kp_s_input_array_type_is_not_double;
static PyObject *__pyx_n_s_input_arrays;
static PyObject *__pyx_kp_s_input_arrays_2;
static PyObject *__pyx_kp_s_input_arrays_parameter_missing_r;
static PyObject *__pyx_n_s_input_name;
static PyObject *__pyx_n_s_input_names;
static PyObject *__pyx_n_s_input_price_series_names;
static PyObject *__pyx_n_s_input_price_series_names_2;
static PyObject *__pyx_kp_s_inputs_are_all_NaN;
static PyObject *__pyx_n_s_integer;
static PyObject *__pyx_kp_s_integer_values_are_100_0_or_100;
static PyObject *__pyx_n_s_is_empty;
static PyObject *__pyx_n_s_items;
static PyObject *__pyx_n_s_join;
static PyObject *__pyx_n_s_key;
static PyObject *__pyx_n_s_keys;
static PyObject *__pyx_n_s_kwargs;
static PyObject *__pyx_n_s_length;
static PyObject *__pyx_n_s_log;
static PyObject *__pyx_n_s_lookback;
static PyObject *__pyx_n_s_lookup;
static PyObject *__pyx_n_s_low;
static PyObject *__pyx_n_s_low_data;
static PyObject *__pyx_n_s_lower;
static PyObject *__pyx_n_s_main;
static PyObject *__pyx_n_s_math;
static PyObject *__pyx_n_s_matype;
static PyObject *__pyx_n_s_max;
static PyObject *__pyx_n_s_max_int;
static PyObject *__pyx_n_s_maximum;
static PyObject *__pyx_n_s_maxperiod;
static PyObject *__pyx_n_s_metaclass;
static PyObject *__pyx_n_s_min;
static PyObject *__pyx_n_s_min_int;
static PyObject *__pyx_n_s_minperiod;
static PyObject *__pyx_n_s_missing;
static PyObject *__pyx_n_s_missing_keys;
static PyObject *__pyx_n_s_module;
static PyObject *__pyx_n_s_msg;
static PyObject *__pyx_n_s_n;
static PyObject *__pyx_n_s_name;
static PyObject *__pyx_n_s_name_2;
static PyObject *__pyx_n_s_nan;
static PyObject *__pyx_n_s_nbdev;
static PyObject *__pyx_n_s_nbdevdn;
static PyObject *__pyx_n_s_nbdevup;
static PyObject *__pyx_n_s_no_existing_input_arrays;
static PyObject *__pyx_n_s_num_inputs;
static PyObject *__pyx_n_s_num_opt_inputs;
static PyObject *__pyx_n_s_num_outputs;
static PyObject *__pyx_n_s_numpy;
static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to;
static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor;
static PyObject *__pyx_n_s_object;
static PyObject *__pyx_n_s_offsetonreverse;
static PyObject *__pyx_n_s_open;
static PyObject *__pyx_n_s_openInterest;
static PyObject *__pyx_n_s_open_data;
static PyObject *__pyx_n_s_optIn;
static PyObject *__pyx_n_s_opt_input;
static PyObject *__pyx_n_s_opt_input_values;
static PyObject *__pyx_n_s_ordereddict;
static PyObject *__pyx_n_s_out;
static PyObject *__pyx_n_s_outaroondown;
static PyObject *__pyx_n_s_outaroonup;
static PyObject *__pyx_n_s_outbegidx;
static PyObject *__pyx_n_s_outfama;
static PyObject *__pyx_n_s_outfastd;
static PyObject *__pyx_n_s_outfastk;
static PyObject *__pyx_n_s_outinphase;
static PyObject *__pyx_n_s_outinteger;
static PyObject *__pyx_n_s_outinteger_data;
static PyObject *__pyx_n_s_outleadsine;
static PyObject *__pyx_n_s_outmacd;
static PyObject *__pyx_n_s_outmacdhist;
static PyObject *__pyx_n_s_outmacdsignal;
static PyObject *__pyx_n_s_outmama;
static PyObject *__pyx_n_s_outmax;
static PyObject *__pyx_n_s_outmaxidx;
static PyObject *__pyx_n_s_outmaxidx_data;
static PyObject *__pyx_n_s_outmin;
static PyObject *__pyx_n_s_outminidx;
static PyObject *__pyx_n_s_outminidx_data;
static PyObject *__pyx_n_s_outnbelement;
static PyObject *__pyx_n_s_output;
static PyObject *__pyx_n_s_output_flags;
static PyObject *__pyx_n_s_output_name;
static PyObject *__pyx_n_s_output_names;
static PyObject *__pyx_n_s_outputs;
static PyObject *__pyx_n_s_outquadrature;
static PyObject *__pyx_n_s_outreal;
static PyObject *__pyx_n_s_outreallowerband;
static PyObject *__pyx_n_s_outrealmiddleband;
static PyObject *__pyx_n_s_outrealupperband;
static PyObject *__pyx_n_s_outsine;
static PyObject *__pyx_n_s_outslowd;
static PyObject *__pyx_n_s_outslowk;
static PyObject *__pyx_n_s_pandas;
static PyObject *__pyx_n_s_param;
static PyObject *__pyx_n_s_param_name;
static PyObject *__pyx_n_s_parameters;
static PyObject *__pyx_n_s_params;
static PyObject *__pyx_n_s_penetration;
static PyObject *__pyx_n_s_period;
static PyObject *__pyx_n_s_periods;
static PyObject *__pyx_n_s_periods_data;
static PyObject *__pyx_n_s_polars;
static PyObject *__pyx_n_s_pop;
static PyObject *__pyx_n_s_prepare;
static PyObject *__pyx_n_s_price;
static PyObject *__pyx_n_s_price0;
static PyObject *__pyx_n_s_price1;
static PyObject *__pyx_n_s_price_series;
static PyObject *__pyx_n_s_price_series_name_values;
static PyObject *__pyx_n_s_prices;
static PyObject *__pyx_n_s_property;
static PyObject *__pyx_n_s_qualname;
static PyObject *__pyx_n_s_range;
static PyObject *__pyx_n_s_rangetype;
static PyObject *__pyx_n_s_real;
static PyObject *__pyx_n_s_real0;
static PyObject *__pyx_n_s_real0_data;
static PyObject *__pyx_n_s_real1;
static PyObject *__pyx_n_s_real1_data;
static PyObject *__pyx_n_s_real_data;
static PyObject *__pyx_n_s_replace;
static PyObject *__pyx_n_s_repr;
static PyObject *__pyx_n_s_results;
static PyObject *__pyx_n_s_ret;
static PyObject *__pyx_n_s_retCode;
static PyObject *__pyx_n_s_ret_code;
static PyObject *__pyx_n_s_run;
static PyObject *__pyx_n_s_s;
static PyObject *__pyx_kp_s_s_2;
static PyObject *__pyx_kp_s_s_3;
static PyObject *__pyx_kp_s_s_4;
static PyObject *__pyx_kp_s_s_function_failed_with_error_co;
static PyObject *__pyx_kp_s_s_s;
static PyObject *__pyx_kp_s_s_s_2;
static PyObject *__pyx_n_s_self;
static PyObject *__pyx_n_s_series;
static PyObject *__pyx_n_s_set_function_args;
static PyObject *__pyx_n_s_set_input_arrays;
static PyObject *__pyx_n_s_set_input_names;
static PyObject *__pyx_n_s_set_parameters;
static PyObject *__pyx_n_s_settingtype;
static PyObject *__pyx_n_s_signalmatype;
static PyObject *__pyx_n_s_signalperiod;
static PyObject *__pyx_n_s_skip_first;
static PyObject *__pyx_n_s_slowd_matype;
static PyObject *__pyx_n_s_slowd_period;
static PyObject *__pyx_n_s_slowk_matype;
static PyObject *__pyx_n_s_slowk_period;
static PyObject *__pyx_n_s_slowlimit;
static PyObject *__pyx_n_s_slowmatype;
static PyObject *__pyx_n_s_slowperiod;
static PyObject *__pyx_n_s_startvalue;
static PyObject *__pyx_n_s_str;
static PyObject *__pyx_n_s_str2bytes;
static PyObject *__pyx_n_s_stream_ACOS;
static PyObject *__pyx_n_s_stream_AD;
static PyObject *__pyx_n_s_stream_ADD;
static PyObject *__pyx_n_s_stream_ADOSC;
static PyObject *__pyx_n_s_stream_ADX;
static PyObject *__pyx_n_s_stream_ADXR;
static PyObject *__pyx_n_s_stream_APO;
static PyObject *__pyx_n_s_stream_AROON;
static PyObject *__pyx_n_s_stream_AROONOSC;
static PyObject *__pyx_n_s_stream_ASIN;
static PyObject *__pyx_n_s_stream_ATAN;
static PyObject *__pyx_n_s_stream_ATR;
static PyObject *__pyx_n_s_stream_AVGPRICE;
static PyObject *__pyx_n_s_stream_BBANDS;
static PyObject *__pyx_n_s_stream_BETA;
static PyObject *__pyx_n_s_stream_BOP;
static PyObject *__pyx_n_s_stream_CCI;
static PyObject *__pyx_n_s_stream_CDL2CROWS;
static PyObject *__pyx_n_s_stream_CDL3BLACKCROWS;
static PyObject *__pyx_n_s_stream_CDL3INSIDE;
static PyObject *__pyx_n_s_stream_CDL3LINESTRIKE;
static PyObject *__pyx_n_s_stream_CDL3OUTSIDE;
static PyObject *__pyx_n_s_stream_CDL3STARSINSOUTH;
static PyObject *__pyx_n_s_stream_CDL3WHITESOLDIERS;
static PyObject *__pyx_n_s_stream_CDLABANDONEDBABY;
static PyObject *__pyx_n_s_stream_CDLADVANCEBLOCK;
static PyObject *__pyx_n_s_stream_CDLBELTHOLD;
static PyObject *__pyx_n_s_stream_CDLBREAKAWAY;
static PyObject *__pyx_n_s_stream_CDLCLOSINGMARUBOZU;
static PyObject *__pyx_n_s_stream_CDLCONCEALBABYSWALL;
static PyObject *__pyx_n_s_stream_CDLCOUNTERATTACK;
static PyObject *__pyx_n_s_stream_CDLDARKCLOUDCOVER;
static PyObject *__pyx_n_s_stream_CDLDOJI;
static PyObject *__pyx_n_s_stream_CDLDOJISTAR;
static PyObject *__pyx_n_s_stream_CDLDRAGONFLYDOJI;
static PyObject *__pyx_n_s_stream_CDLENGULFING;
static PyObject *__pyx_n_s_stream_CDLEVENINGDOJISTAR;
static PyObject *__pyx_n_s_stream_CDLEVENINGSTAR;
static PyObject *__pyx_n_s_stream_CDLGAPSIDESIDEWHITE;
static PyObject *__pyx_n_s_stream_CDLGRAVESTONEDOJI;
static PyObject *__pyx_n_s_stream_CDLHAMMER;
static PyObject *__pyx_n_s_stream_CDLHANGINGMAN;
static PyObject *__pyx_n_s_stream_CDLHARAMI;
static PyObject *__pyx_n_s_stream_CDLHARAMICROSS;
static PyObject *__pyx_n_s_stream_CDLHIGHWAVE;
static PyObject *__pyx_n_s_stream_CDLHIKKAKE;
static PyObject *__pyx_n_s_stream_CDLHIKKAKEMOD;
static PyObject *__pyx_n_s_stream_CDLHOMINGPIGEON;
static PyObject *__pyx_n_s_stream_CDLIDENTICAL3CROWS;
static PyObject *__pyx_n_s_stream_CDLINNECK;
static PyObject *__pyx_n_s_stream_CDLINVERTEDHAMMER;
static PyObject *__pyx_n_s_stream_CDLKICKING;
static PyObject *__pyx_n_s_stream_CDLKICKINGBYLENGTH;
static PyObject *__pyx_n_s_stream_CDLLADDERBOTTOM;
static PyObject *__pyx_n_s_stream_CDLLONGLEGGEDDOJI;
static PyObject *__pyx_n_s_stream_CDLLONGLINE;
static PyObject *__pyx_n_s_stream_CDLMARUBOZU;
static PyObject *__pyx_n_s_stream_CDLMATCHINGLOW;
static PyObject *__pyx_n_s_stream_CDLMATHOLD;
static PyObject *__pyx_n_s_stream_CDLMORNINGDOJISTAR;
static PyObject *__pyx_n_s_stream_CDLMORNINGSTAR;
static PyObject *__pyx_n_s_stream_CDLONNECK;
static PyObject *__pyx_n_s_stream_CDLPIERCING;
static PyObject *__pyx_n_s_stream_CDLRICKSHAWMAN;
static PyObject *__pyx_n_s_stream_CDLRISEFALL3METHODS;
static PyObject *__pyx_n_s_stream_CDLSEPARATINGLINES;
static PyObject *__pyx_n_s_stream_CDLSHOOTINGSTAR;
static PyObject *__pyx_n_s_stream_CDLSHORTLINE;
static PyObject *__pyx_n_s_stream_CDLSPINNINGTOP;
static PyObject *__pyx_n_s_stream_CDLSTALLEDPATTERN;
static PyObject *__pyx_n_s_stream_CDLSTICKSANDWICH;
static PyObject *__pyx_n_s_stream_CDLTAKURI;
static PyObject *__pyx_n_s_stream_CDLTASUKIGAP;
static PyObject *__pyx_n_s_stream_CDLTHRUSTING;
static PyObject *__pyx_n_s_stream_CDLTRISTAR;
static PyObject *__pyx_n_s_stream_CDLUNIQUE3RIVER;
static PyObject *__pyx_n_s_stream_CDLUPSIDEGAP2CROWS;
static PyObject *__pyx_n_s_stream_CDLXSIDEGAP3METHODS;
static PyObject *__pyx_n_s_stream_CEIL;
static PyObject *__pyx_n_s_stream_CMO;
static PyObject *__pyx_n_s_stream_CORREL;
static PyObject *__pyx_n_s_stream_COS;
static PyObject *__pyx_n_s_stream_COSH;
static PyObject *__pyx_n_s_stream_DEMA;
static PyObject *__pyx_n_s_stream_DIV;
static PyObject *__pyx_n_s_stream_DX;
static PyObject *__pyx_n_s_stream_EMA;
static PyObject *__pyx_n_s_stream_EXP;
static PyObject *__pyx_n_s_stream_FLOOR;
static PyObject *__pyx_n_s_stream_HT_DCPERIOD;
static PyObject *__pyx_n_s_stream_HT_DCPHASE;
static PyObject *__pyx_n_s_stream_HT_PHASOR;
static PyObject *__pyx_n_s_stream_HT_SINE;
static PyObject *__pyx_n_s_stream_HT_TRENDLINE;
static PyObject *__pyx_n_s_stream_HT_TRENDMODE;
static PyObject *__pyx_n_s_stream_KAMA;
static PyObject *__pyx_n_s_stream_LINEARREG;
static PyObject *__pyx_n_s_stream_LINEARREG_ANGLE;
static PyObject *__pyx_n_s_stream_LINEARREG_INTERCEPT;
static PyObject *__pyx_n_s_stream_LINEARREG_SLOPE;
static PyObject *__pyx_n_s_stream_LN;
static PyObject *__pyx_n_s_stream_LOG10;
static PyObject *__pyx_n_s_stream_MA;
static PyObject *__pyx_n_s_stream_MACD;
static PyObject *__pyx_n_s_stream_MACDEXT;
static PyObject *__pyx_n_s_stream_MACDFIX;
static PyObject *__pyx_n_s_stream_MAMA;
static PyObject *__pyx_n_s_stream_MAVP;
static PyObject *__pyx_n_s_stream_MAX;
static PyObject *__pyx_n_s_stream_MAXINDEX;
static PyObject *__pyx_n_s_stream_MEDPRICE;
static PyObject *__pyx_n_s_stream_MFI;
static PyObject *__pyx_n_s_stream_MIDPOINT;
static PyObject *__pyx_n_s_stream_MIDPRICE;
static PyObject *__pyx_n_s_stream_MIN;
static PyObject *__pyx_n_s_stream_MININDEX;
static PyObject *__pyx_n_s_stream_MINMAX;
static PyObject *__pyx_n_s_stream_MINMAXINDEX;
static PyObject *__pyx_n_s_stream_MINUS_DI;
static PyObject *__pyx_n_s_stream_MINUS_DM;
static PyObject *__pyx_n_s_stream_MOM;
static PyObject *__pyx_n_s_stream_MULT;
static PyObject *__pyx_n_s_stream_NATR;
static PyObject *__pyx_n_s_stream_OBV;
static PyObject *__pyx_n_s_stream_PLUS_DI;
static PyObject *__pyx_n_s_stream_PLUS_DM;
static PyObject *__pyx_n_s_stream_PPO;
static PyObject *__pyx_n_s_stream_ROC;
static PyObject *__pyx_n_s_stream_ROCP;
static PyObject *__pyx_n_s_stream_ROCR;
static PyObject *__pyx_n_s_stream_ROCR100;
static PyObject *__pyx_n_s_stream_RSI;
static PyObject *__pyx_n_s_stream_SAR;
static PyObject *__pyx_n_s_stream_SAREXT;
static PyObject *__pyx_n_s_stream_SIN;
static PyObject *__pyx_n_s_stream_SINH;
static PyObject *__pyx_n_s_stream_SMA;
static PyObject *__pyx_n_s_stream_SQRT;
static PyObject *__pyx_n_s_stream_STDDEV;
static PyObject *__pyx_n_s_stream_STOCH;
static PyObject *__pyx_n_s_stream_STOCHF;
static PyObject *__pyx_n_s_stream_STOCHRSI;
static PyObject *__pyx_n_s_stream_SUB;
static PyObject *__pyx_n_s_stream_SUM;
static PyObject *__pyx_n_s_stream_T3;
static PyObject *__pyx_n_s_stream_TAN;
static PyObject *__pyx_n_s_stream_TANH;
static PyObject *__pyx_n_s_stream_TEMA;
static PyObject *__pyx_n_s_stream_TRANGE;
static PyObject *__pyx_n_s_stream_TRIMA;
static PyObject *__pyx_n_s_stream_TRIX;
static PyObject *__pyx_n_s_stream_TSF;
static PyObject *__pyx_n_s_stream_TYPPRICE;
static PyObject *__pyx_n_s_stream_ULTOSC;
static PyObject *__pyx_n_s_stream_VAR;
static PyObject *__pyx_n_s_stream_WCLPRICE;
static PyObject *__pyx_n_s_stream_WILLR;
static PyObject *__pyx_n_s_stream_WMA;
static PyObject *__pyx_kp_s_stream__s;
static PyObject *__pyx_n_s_sys;
static PyObject *__pyx_n_s_ta_func_unst_ids;
static PyObject *__pyx_n_s_ta_getFuncInfo;
static PyObject *__pyx_n_s_ta_getFuncTable;
static PyObject *__pyx_n_s_ta_getGroupTable;
static PyObject *__pyx_n_s_ta_getInputParameterInfo;
static PyObject *__pyx_n_s_ta_getOptInputParameterInfo;
static PyObject *__pyx_n_s_ta_getOutputParameterInfo;
static PyObject *__pyx_n_s_ta_get_compatibility;
static PyObject *__pyx_n_s_ta_get_unstable_period;
static PyObject *__pyx_n_s_ta_initialize;
static PyObject *__pyx_n_s_ta_restore_candle_default_setti;
static PyObject *__pyx_n_s_ta_set_candle_settings;
static PyObject *__pyx_n_s_ta_set_compatibility;
static PyObject *__pyx_n_s_ta_set_unstable_period;
static PyObject *__pyx_n_s_ta_shutdown;
static PyObject *__pyx_n_s_ta_version;
static PyObject *__pyx_n_s_table;
static PyObject *__pyx_kp_s_talib__abstract_pxi;
static PyObject *__pyx_kp_s_talib__common_pxi;
static PyObject *__pyx_kp_s_talib__func_pxi;
static PyObject *__pyx_kp_s_talib__stream_pxi;
static PyObject *__pyx_n_s_talib__ta_lib;
static PyObject *__pyx_n_s_test;
static PyObject *__pyx_n_s_timeStamp;
static PyObject *__pyx_n_s_timeperiod;
static PyObject *__pyx_n_s_timeperiod1;
static PyObject *__pyx_n_s_timeperiod2;
static PyObject *__pyx_n_s_timeperiod3;
static PyObject *__pyx_n_s_to_numpy;
static PyObject *__pyx_n_s_type;
static PyObject *__pyx_n_s_type_2;
static PyObject *__pyx_n_s_unicode;
static PyObject *__pyx_n_s_update;
static PyObject *__pyx_n_s_update_info;
static PyObject *__pyx_n_s_upper;
static PyObject *__pyx_n_s_value;
static PyObject *__pyx_n_s_value_range;
static PyObject *__pyx_n_s_values;
static PyObject *__pyx_n_s_version;
static PyObject *__pyx_n_s_vfactor;
static PyObject *__pyx_n_s_volume;
static PyObject *__pyx_n_s_volume_data;
static PyObject *__pyx_n_s_xrange;
static PyObject *__pyx_pf_5talib_7_ta_lib__ta_check_success(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_2_ta_initialize(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_4_ta_shutdown(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_set_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_period); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_get_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_set_compatibility(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_set_candle_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype, PyObject *__pyx_v_rangetype, PyObject *__pyx_v_avgperiod, PyObject *__pyx_v_factor); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_restore_candle_default_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_18ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_20AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_22ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_24ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_26ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_28ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_30APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_32AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_34AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_36ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_38ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_40ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_42AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_44BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_46BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_48BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_50CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_52CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_54CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_56CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_66CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_68CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_70CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_72CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_74CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_76CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_174CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_176CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_178CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_180COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_182COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_184DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_186DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_188DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_190EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_192EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_194FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_196HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_198HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_200HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_202HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_204HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_206HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_208KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_210LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_212LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_214LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_216LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_218LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_220LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_222MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_224MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_226MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_228MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_230MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_232MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_234MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_236MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_238MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_240MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_242MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_244MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_246MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_248MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_250MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_252MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_254MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_256MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_258MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_260MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_262NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_264OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_266PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_268PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_270PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_272ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_274ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_276ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_278ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_280RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_282SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_284SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_286SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_288SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_290SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_292SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_294STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_296STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_298STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_300STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_302SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_304SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_306T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_308TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_310TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_312TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_314TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_316TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_318TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_320TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_322TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_324ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_326VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_328WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_330WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_332WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_334str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_336bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_338str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_340bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_func_object, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__initialize_function_info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_names); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parameters, PyObject *__pyx_v_kwargs); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_342_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_344_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_346__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_352_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_354_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_358stream_ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_360stream_AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_362stream_ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_366stream_ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_368stream_ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_370stream_APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_372stream_AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_374stream_AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_376stream_ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_378stream_ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_380stream_ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_382stream_AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_384stream_BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_386stream_BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_388stream_BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_390stream_CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_392stream_CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_394stream_CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_396stream_CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_398stream_CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_400stream_CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_406stream_CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_408stream_CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_410stream_CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_412stream_CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_422stream_CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_424stream_CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_428stream_CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_432stream_CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_434stream_CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_438stream_CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_440stream_CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_516stream_CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_530stream_EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_582stream_MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_586stream_MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_598stream_MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_604stream_OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_608stream_PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_624stream_SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_642stream_SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_648stream_TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */
static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_keys = {0, &__pyx_n_s_keys, 0, 0, 0};
static PyObject *__pyx_int_0;
static PyObject *__pyx_int_1;
static PyObject *__pyx_int_2;
static PyObject *__pyx_int_3;
static PyObject *__pyx_int_4;
static PyObject *__pyx_int_8;
static PyObject *__pyx_int_9;
static PyObject *__pyx_int_12;
static PyObject *__pyx_int_16;
static PyObject *__pyx_int_32;
static PyObject *__pyx_int_64;
static PyObject *__pyx_int_128;
static PyObject *__pyx_int_256;
static PyObject *__pyx_int_512;
static PyObject *__pyx_int_1024;
static PyObject *__pyx_int_2048;
static PyObject *__pyx_int_4096;
static PyObject *__pyx_int_16777216;
static PyObject *__pyx_int_67108864;
static PyObject *__pyx_int_134217728;
static PyObject *__pyx_int_268435456;
static PyObject *__pyx_int_neg_1;
static PyObject *__pyx_tuple_;
static PyObject *__pyx_tuple__2;
static PyObject *__pyx_tuple__3;
static PyObject *__pyx_tuple__4;
static PyObject *__pyx_tuple__7;
static PyObject *__pyx_tuple__12;
static PyObject *__pyx_tuple__13;
static PyObject *__pyx_tuple__14;
static PyObject *__pyx_tuple__16;
static PyObject *__pyx_tuple__18;
static PyObject *__pyx_tuple__19;
static PyObject *__pyx_tuple__20;
static PyObject *__pyx_tuple__22;
static PyObject *__pyx_tuple__24;
static PyObject *__pyx_tuple__26;
static PyObject *__pyx_tuple__28;
static PyObject *__pyx_tuple__30;
static PyObject *__pyx_tuple__32;
static PyObject *__pyx_tuple__33;
static PyObject *__pyx_tuple__34;
static PyObject *__pyx_tuple__35;
static PyObject *__pyx_tuple__36;
static PyObject *__pyx_tuple__38;
static PyObject *__pyx_tuple__40;
static PyObject *__pyx_tuple__42;
static PyObject *__pyx_tuple__44;
static PyObject *__pyx_tuple__46;
static PyObject *__pyx_tuple__48;
static PyObject *__pyx_tuple__50;
static PyObject *__pyx_tuple__52;
static PyObject *__pyx_tuple__54;
static PyObject *__pyx_tuple__56;
static PyObject *__pyx_tuple__58;
static PyObject *__pyx_tuple__60;
static PyObject *__pyx_tuple__62;
static PyObject *__pyx_tuple__64;
static PyObject *__pyx_tuple__66;
static PyObject *__pyx_tuple__68;
static PyObject *__pyx_tuple__70;
static PyObject *__pyx_tuple__72;
static PyObject *__pyx_tuple__74;
static PyObject *__pyx_tuple__76;
static PyObject *__pyx_tuple__78;
static PyObject *__pyx_tuple__80;
static PyObject *__pyx_tuple__82;
static PyObject *__pyx_tuple__84;
static PyObject *__pyx_tuple__86;
static PyObject *__pyx_tuple__88;
static PyObject *__pyx_tuple__90;
static PyObject *__pyx_tuple__92;
static PyObject *__pyx_tuple__94;
static PyObject *__pyx_tuple__96;
static PyObject *__pyx_tuple__98;
static PyObject *__pyx_tuple__100;
static PyObject *__pyx_tuple__102;
static PyObject *__pyx_tuple__104;
static PyObject *__pyx_tuple__106;
static PyObject *__pyx_tuple__108;
static PyObject *__pyx_tuple__110;
static PyObject *__pyx_tuple__112;
static PyObject *__pyx_tuple__114;
static PyObject *__pyx_tuple__116;
static PyObject *__pyx_tuple__118;
static PyObject *__pyx_tuple__120;
static PyObject *__pyx_tuple__122;
static PyObject *__pyx_tuple__124;
static PyObject *__pyx_tuple__126;
static PyObject *__pyx_tuple__128;
static PyObject *__pyx_tuple__130;
static PyObject *__pyx_tuple__132;
static PyObject *__pyx_tuple__134;
static PyObject *__pyx_tuple__136;
static PyObject *__pyx_tuple__138;
static PyObject *__pyx_tuple__140;
static PyObject *__pyx_tuple__142;
static PyObject *__pyx_tuple__144;
static PyObject *__pyx_tuple__146;
static PyObject *__pyx_tuple__148;
static PyObject *__pyx_tuple__150;
static PyObject *__pyx_tuple__152;
static PyObject *__pyx_tuple__154;
static PyObject *__pyx_tuple__156;
static PyObject *__pyx_tuple__158;
static PyObject *__pyx_tuple__160;
static PyObject *__pyx_tuple__162;
static PyObject *__pyx_tuple__164;
static PyObject *__pyx_tuple__166;
static PyObject *__pyx_tuple__168;
static PyObject *__pyx_tuple__170;
static PyObject *__pyx_tuple__172;
static PyObject *__pyx_tuple__174;
static PyObject *__pyx_tuple__176;
static PyObject *__pyx_tuple__178;
static PyObject *__pyx_tuple__180;
static PyObject *__pyx_tuple__182;
static PyObject *__pyx_tuple__184;
static PyObject *__pyx_tuple__186;
static PyObject *__pyx_tuple__188;
static PyObject *__pyx_tuple__190;
static PyObject *__pyx_tuple__192;
static PyObject *__pyx_tuple__194;
static PyObject *__pyx_tuple__196;
static PyObject *__pyx_tuple__198;
static PyObject *__pyx_tuple__200;
static PyObject *__pyx_tuple__202;
static PyObject *__pyx_tuple__204;
static PyObject *__pyx_tuple__206;
static PyObject *__pyx_tuple__208;
static PyObject *__pyx_tuple__210;
static PyObject *__pyx_tuple__212;
static PyObject *__pyx_tuple__214;
static PyObject *__pyx_tuple__216;
static PyObject *__pyx_tuple__218;
static PyObject *__pyx_tuple__220;
static PyObject *__pyx_tuple__222;
static PyObject *__pyx_tuple__224;
static PyObject *__pyx_tuple__226;
static PyObject *__pyx_tuple__228;
static PyObject *__pyx_tuple__230;
static PyObject *__pyx_tuple__232;
static PyObject *__pyx_tuple__234;
static PyObject *__pyx_tuple__236;
static PyObject *__pyx_tuple__238;
static PyObject *__pyx_tuple__240;
static PyObject *__pyx_tuple__242;
static PyObject *__pyx_tuple__244;
static PyObject *__pyx_tuple__246;
static PyObject *__pyx_tuple__248;
static PyObject *__pyx_tuple__250;
static PyObject *__pyx_tuple__252;
static PyObject *__pyx_tuple__254;
static PyObject *__pyx_tuple__256;
static PyObject *__pyx_tuple__258;
static PyObject *__pyx_tuple__260;
static PyObject *__pyx_tuple__262;
static PyObject *__pyx_tuple__264;
static PyObject *__pyx_tuple__266;
static PyObject *__pyx_tuple__268;
static PyObject *__pyx_tuple__270;
static PyObject *__pyx_tuple__272;
static PyObject *__pyx_tuple__274;
static PyObject *__pyx_tuple__276;
static PyObject *__pyx_tuple__278;
static PyObject *__pyx_tuple__280;
static PyObject *__pyx_tuple__282;
static PyObject *__pyx_tuple__284;
static PyObject *__pyx_tuple__286;
static PyObject *__pyx_tuple__288;
static PyObject *__pyx_tuple__290;
static PyObject *__pyx_tuple__292;
static PyObject *__pyx_tuple__294;
static PyObject *__pyx_tuple__296;
static PyObject *__pyx_tuple__298;
static PyObject *__pyx_tuple__300;
static PyObject *__pyx_tuple__302;
static PyObject *__pyx_tuple__304;
static PyObject *__pyx_tuple__306;
static PyObject *__pyx_tuple__308;
static PyObject *__pyx_tuple__310;
static PyObject *__pyx_tuple__312;
static PyObject *__pyx_tuple__314;
static PyObject *__pyx_tuple__316;
static PyObject *__pyx_tuple__318;
static PyObject *__pyx_tuple__320;
static PyObject *__pyx_tuple__322;
static PyObject *__pyx_tuple__324;
static PyObject *__pyx_tuple__326;
static PyObject *__pyx_tuple__328;
static PyObject *__pyx_tuple__330;
static PyObject *__pyx_tuple__332;
static PyObject *__pyx_tuple__334;
static PyObject *__pyx_tuple__336;
static PyObject *__pyx_tuple__338;
static PyObject *__pyx_tuple__340;
static PyObject *__pyx_tuple__342;
static PyObject *__pyx_tuple__344;
static PyObject *__pyx_tuple__346;
static PyObject *__pyx_tuple__348;
static PyObject *__pyx_tuple__350;
static PyObject *__pyx_tuple__352;
static PyObject *__pyx_tuple__354;
static PyObject *__pyx_tuple__356;
static PyObject *__pyx_tuple__358;
static PyObject *__pyx_tuple__360;
static PyObject *__pyx_tuple__362;
static PyObject *__pyx_tuple__364;
static PyObject *__pyx_tuple__365;
static PyObject *__pyx_tuple__367;
static PyObject *__pyx_tuple__369;
static PyObject *__pyx_tuple__371;
static PyObject *__pyx_tuple__373;
static PyObject *__pyx_tuple__375;
static PyObject *__pyx_tuple__377;
static PyObject *__pyx_tuple__379;
static PyObject *__pyx_tuple__381;
static PyObject *__pyx_tuple__383;
static PyObject *__pyx_tuple__385;
static PyObject *__pyx_tuple__387;
static PyObject *__pyx_tuple__388;
static PyObject *__pyx_tuple__390;
static PyObject *__pyx_tuple__392;
static PyObject *__pyx_tuple__394;
static PyObject *__pyx_tuple__396;
static PyObject *__pyx_tuple__398;
static PyObject *__pyx_tuple__399;
static PyObject *__pyx_tuple__401;
static PyObject *__pyx_tuple__403;
static PyObject *__pyx_tuple__405;
static PyObject *__pyx_tuple__407;
static PyObject *__pyx_tuple__409;
static PyObject *__pyx_tuple__411;
static PyObject *__pyx_tuple__413;
static PyObject *__pyx_tuple__415;
static PyObject *__pyx_tuple__417;
static PyObject *__pyx_tuple__419;
static PyObject *__pyx_tuple__421;
static PyObject *__pyx_tuple__423;
static PyObject *__pyx_tuple__425;
static PyObject *__pyx_tuple__427;
static PyObject *__pyx_tuple__429;
static PyObject *__pyx_tuple__431;
static PyObject *__pyx_tuple__433;
static PyObject *__pyx_tuple__435;
static PyObject *__pyx_tuple__437;
static PyObject *__pyx_tuple__439;
static PyObject *__pyx_tuple__441;
static PyObject *__pyx_tuple__443;
static PyObject *__pyx_tuple__445;
static PyObject *__pyx_tuple__447;
static PyObject *__pyx_tuple__449;
static PyObject *__pyx_tuple__451;
static PyObject *__pyx_tuple__453;
static PyObject *__pyx_tuple__455;
static PyObject *__pyx_tuple__457;
static PyObject *__pyx_tuple__459;
static PyObject *__pyx_tuple__461;
static PyObject *__pyx_tuple__463;
static PyObject *__pyx_tuple__465;
static PyObject *__pyx_tuple__467;
static PyObject *__pyx_tuple__469;
static PyObject *__pyx_tuple__471;
static PyObject *__pyx_tuple__473;
static PyObject *__pyx_tuple__475;
static PyObject *__pyx_tuple__477;
static PyObject *__pyx_tuple__479;
static PyObject *__pyx_tuple__481;
static PyObject *__pyx_tuple__483;
static PyObject *__pyx_tuple__485;
static PyObject *__pyx_tuple__487;
static PyObject *__pyx_tuple__489;
static PyObject *__pyx_tuple__491;
static PyObject *__pyx_tuple__493;
static PyObject *__pyx_tuple__495;
static PyObject *__pyx_tuple__497;
static PyObject *__pyx_tuple__499;
static PyObject *__pyx_tuple__501;
static PyObject *__pyx_tuple__503;
static PyObject *__pyx_tuple__505;
static PyObject *__pyx_tuple__507;
static PyObject *__pyx_tuple__509;
static PyObject *__pyx_tuple__511;
static PyObject *__pyx_tuple__513;
static PyObject *__pyx_tuple__515;
static PyObject *__pyx_tuple__517;
static PyObject *__pyx_tuple__519;
static PyObject *__pyx_tuple__521;
static PyObject *__pyx_tuple__523;
static PyObject *__pyx_tuple__525;
static PyObject *__pyx_tuple__527;
static PyObject *__pyx_tuple__529;
static PyObject *__pyx_tuple__531;
static PyObject *__pyx_tuple__533;
static PyObject *__pyx_tuple__535;
static PyObject *__pyx_tuple__537;
static PyObject *__pyx_tuple__539;
static PyObject *__pyx_tuple__541;
static PyObject *__pyx_tuple__543;
static PyObject *__pyx_tuple__545;
static PyObject *__pyx_tuple__547;
static PyObject *__pyx_tuple__549;
static PyObject *__pyx_tuple__551;
static PyObject *__pyx_tuple__553;
static PyObject *__pyx_tuple__555;
static PyObject *__pyx_tuple__557;
static PyObject *__pyx_tuple__559;
static PyObject *__pyx_tuple__561;
static PyObject *__pyx_tuple__563;
static PyObject *__pyx_tuple__565;
static PyObject *__pyx_tuple__567;
static PyObject *__pyx_tuple__569;
static PyObject *__pyx_tuple__571;
static PyObject *__pyx_tuple__573;
static PyObject *__pyx_tuple__575;
static PyObject *__pyx_tuple__577;
static PyObject *__pyx_tuple__579;
static PyObject *__pyx_tuple__581;
static PyObject *__pyx_tuple__583;
static PyObject *__pyx_tuple__585;
static PyObject *__pyx_tuple__587;
static PyObject *__pyx_tuple__589;
static PyObject *__pyx_tuple__591;
static PyObject *__pyx_tuple__593;
static PyObject *__pyx_tuple__595;
static PyObject *__pyx_tuple__597;
static PyObject *__pyx_tuple__599;
static PyObject *__pyx_tuple__601;
static PyObject *__pyx_tuple__603;
static PyObject *__pyx_tuple__605;
static PyObject *__pyx_tuple__607;
static PyObject *__pyx_tuple__609;
static PyObject *__pyx_tuple__611;
static PyObject *__pyx_tuple__613;
static PyObject *__pyx_tuple__615;
static PyObject *__pyx_tuple__617;
static PyObject *__pyx_tuple__619;
static PyObject *__pyx_tuple__621;
static PyObject *__pyx_tuple__623;
static PyObject *__pyx_tuple__625;
static PyObject *__pyx_tuple__627;
static PyObject *__pyx_tuple__629;
static PyObject *__pyx_tuple__631;
static PyObject *__pyx_tuple__633;
static PyObject *__pyx_tuple__635;
static PyObject *__pyx_tuple__637;
static PyObject *__pyx_tuple__639;
static PyObject *__pyx_tuple__641;
static PyObject *__pyx_tuple__643;
static PyObject *__pyx_tuple__645;
static PyObject *__pyx_tuple__647;
static PyObject *__pyx_tuple__649;
static PyObject *__pyx_tuple__651;
static PyObject *__pyx_tuple__653;
static PyObject *__pyx_tuple__655;
static PyObject *__pyx_tuple__657;
static PyObject *__pyx_tuple__659;
static PyObject *__pyx_tuple__661;
static PyObject *__pyx_tuple__663;
static PyObject *__pyx_tuple__665;
static PyObject *__pyx_tuple__667;
static PyObject *__pyx_tuple__669;
static PyObject *__pyx_tuple__671;
static PyObject *__pyx_tuple__673;
static PyObject *__pyx_tuple__675;
static PyObject *__pyx_tuple__677;
static PyObject *__pyx_tuple__679;
static PyObject *__pyx_tuple__681;
static PyObject *__pyx_tuple__683;
static PyObject *__pyx_tuple__685;
static PyObject *__pyx_tuple__687;
static PyObject *__pyx_tuple__689;
static PyObject *__pyx_tuple__691;
static PyObject *__pyx_tuple__693;
static PyObject *__pyx_tuple__695;
static PyObject *__pyx_tuple__697;
static PyObject *__pyx_tuple__699;
static PyObject *__pyx_tuple__701;
static PyObject *__pyx_tuple__703;
static PyObject *__pyx_tuple__705;
static PyObject *__pyx_tuple__707;
static PyObject *__pyx_tuple__709;
static PyObject *__pyx_tuple__711;
static PyObject *__pyx_tuple__713;
static PyObject *__pyx_tuple__715;
static PyObject *__pyx_tuple__717;
static PyObject *__pyx_tuple__719;
static PyObject *__pyx_tuple__721;
static PyObject *__pyx_tuple__723;
static PyObject *__pyx_tuple__725;
static PyObject *__pyx_tuple__727;
static PyObject *__pyx_tuple__729;
static PyObject *__pyx_tuple__731;
static PyObject *__pyx_tuple__733;
static PyObject *__pyx_tuple__735;
static PyObject *__pyx_tuple__737;
static PyObject *__pyx_tuple__739;
static PyObject *__pyx_tuple__741;
static PyObject *__pyx_tuple__743;
static PyObject *__pyx_tuple__745;
static PyObject *__pyx_codeobj__15;
static PyObject *__pyx_codeobj__17;
static PyObject *__pyx_codeobj__21;
static PyObject *__pyx_codeobj__23;
static PyObject *__pyx_codeobj__25;
static PyObject *__pyx_codeobj__27;
static PyObject *__pyx_codeobj__29;
static PyObject *__pyx_codeobj__31;
static PyObject *__pyx_codeobj__37;
static PyObject *__pyx_codeobj__39;
static PyObject *__pyx_codeobj__41;
static PyObject *__pyx_codeobj__43;
static PyObject *__pyx_codeobj__45;
static PyObject *__pyx_codeobj__47;
static PyObject *__pyx_codeobj__49;
static PyObject *__pyx_codeobj__51;
static PyObject *__pyx_codeobj__53;
static PyObject *__pyx_codeobj__55;
static PyObject *__pyx_codeobj__57;
static PyObject *__pyx_codeobj__59;
static PyObject *__pyx_codeobj__61;
static PyObject *__pyx_codeobj__63;
static PyObject *__pyx_codeobj__65;
static PyObject *__pyx_codeobj__67;
static PyObject *__pyx_codeobj__69;
static PyObject *__pyx_codeobj__71;
static PyObject *__pyx_codeobj__73;
static PyObject *__pyx_codeobj__75;
static PyObject *__pyx_codeobj__77;
static PyObject *__pyx_codeobj__79;
static PyObject *__pyx_codeobj__81;
static PyObject *__pyx_codeobj__83;
static PyObject *__pyx_codeobj__85;
static PyObject *__pyx_codeobj__87;
static PyObject *__pyx_codeobj__89;
static PyObject *__pyx_codeobj__91;
static PyObject *__pyx_codeobj__93;
static PyObject *__pyx_codeobj__95;
static PyObject *__pyx_codeobj__97;
static PyObject *__pyx_codeobj__99;
static PyObject *__pyx_codeobj__101;
static PyObject *__pyx_codeobj__103;
static PyObject *__pyx_codeobj__105;
static PyObject *__pyx_codeobj__107;
static PyObject *__pyx_codeobj__109;
static PyObject *__pyx_codeobj__111;
static PyObject *__pyx_codeobj__113;
static PyObject *__pyx_codeobj__115;
static PyObject *__pyx_codeobj__117;
static PyObject *__pyx_codeobj__119;
static PyObject *__pyx_codeobj__121;
static PyObject *__pyx_codeobj__123;
static PyObject *__pyx_codeobj__125;
static PyObject *__pyx_codeobj__127;
static PyObject *__pyx_codeobj__129;
static PyObject *__pyx_codeobj__131;
static PyObject *__pyx_codeobj__133;
static PyObject *__pyx_codeobj__135;
static PyObject *__pyx_codeobj__137;
static PyObject *__pyx_codeobj__139;
static PyObject *__pyx_codeobj__141;
static PyObject *__pyx_codeobj__143;
static PyObject *__pyx_codeobj__145;
static PyObject *__pyx_codeobj__147;
static PyObject *__pyx_codeobj__149;
static PyObject *__pyx_codeobj__151;
static PyObject *__pyx_codeobj__153;
static PyObject *__pyx_codeobj__155;
static PyObject *__pyx_codeobj__157;
static PyObject *__pyx_codeobj__159;
static PyObject *__pyx_codeobj__161;
static PyObject *__pyx_codeobj__163;
static PyObject *__pyx_codeobj__165;
static PyObject *__pyx_codeobj__167;
static PyObject *__pyx_codeobj__169;
static PyObject *__pyx_codeobj__171;
static PyObject *__pyx_codeobj__173;
static PyObject *__pyx_codeobj__175;
static PyObject *__pyx_codeobj__177;
static PyObject *__pyx_codeobj__179;
static PyObject *__pyx_codeobj__181;
static PyObject *__pyx_codeobj__183;
static PyObject *__pyx_codeobj__185;
static PyObject *__pyx_codeobj__187;
static PyObject *__pyx_codeobj__189;
static PyObject *__pyx_codeobj__191;
static PyObject *__pyx_codeobj__193;
static PyObject *__pyx_codeobj__195;
static PyObject *__pyx_codeobj__197;
static PyObject *__pyx_codeobj__199;
static PyObject *__pyx_codeobj__201;
static PyObject *__pyx_codeobj__203;
static PyObject *__pyx_codeobj__205;
static PyObject *__pyx_codeobj__207;
static PyObject *__pyx_codeobj__209;
static PyObject *__pyx_codeobj__211;
static PyObject *__pyx_codeobj__213;
static PyObject *__pyx_codeobj__215;
static PyObject *__pyx_codeobj__217;
static PyObject *__pyx_codeobj__219;
static PyObject *__pyx_codeobj__221;
static PyObject *__pyx_codeobj__223;
static PyObject *__pyx_codeobj__225;
static PyObject *__pyx_codeobj__227;
static PyObject *__pyx_codeobj__229;
static PyObject *__pyx_codeobj__231;
static PyObject *__pyx_codeobj__233;
static PyObject *__pyx_codeobj__235;
static PyObject *__pyx_codeobj__237;
static PyObject *__pyx_codeobj__239;
static PyObject *__pyx_codeobj__241;
static PyObject *__pyx_codeobj__243;
static PyObject *__pyx_codeobj__245;
static PyObject *__pyx_codeobj__247;
static PyObject *__pyx_codeobj__249;
static PyObject *__pyx_codeobj__251;
static PyObject *__pyx_codeobj__253;
static PyObject *__pyx_codeobj__255;
static PyObject *__pyx_codeobj__257;
static PyObject *__pyx_codeobj__259;
static PyObject *__pyx_codeobj__261;
static PyObject *__pyx_codeobj__263;
static PyObject *__pyx_codeobj__265;
static PyObject *__pyx_codeobj__267;
static PyObject *__pyx_codeobj__269;
static PyObject *__pyx_codeobj__271;
static PyObject *__pyx_codeobj__273;
static PyObject *__pyx_codeobj__275;
static PyObject *__pyx_codeobj__277;
static PyObject *__pyx_codeobj__279;
static PyObject *__pyx_codeobj__281;
static PyObject *__pyx_codeobj__283;
static PyObject *__pyx_codeobj__285;
static PyObject *__pyx_codeobj__287;
static PyObject *__pyx_codeobj__289;
static PyObject *__pyx_codeobj__291;
static PyObject *__pyx_codeobj__293;
static PyObject *__pyx_codeobj__295;
static PyObject *__pyx_codeobj__297;
static PyObject *__pyx_codeobj__299;
static PyObject *__pyx_codeobj__301;
static PyObject *__pyx_codeobj__303;
static PyObject *__pyx_codeobj__305;
static PyObject *__pyx_codeobj__307;
static PyObject *__pyx_codeobj__309;
static PyObject *__pyx_codeobj__311;
static PyObject *__pyx_codeobj__313;
static PyObject *__pyx_codeobj__315;
static PyObject *__pyx_codeobj__317;
static PyObject *__pyx_codeobj__319;
static PyObject *__pyx_codeobj__321;
static PyObject *__pyx_codeobj__323;
static PyObject *__pyx_codeobj__325;
static PyObject *__pyx_codeobj__327;
static PyObject *__pyx_codeobj__329;
static PyObject *__pyx_codeobj__331;
static PyObject *__pyx_codeobj__333;
static PyObject *__pyx_codeobj__335;
static PyObject *__pyx_codeobj__337;
static PyObject *__pyx_codeobj__339;
static PyObject *__pyx_codeobj__341;
static PyObject *__pyx_codeobj__343;
static PyObject *__pyx_codeobj__345;
static PyObject *__pyx_codeobj__347;
static PyObject *__pyx_codeobj__349;
static PyObject *__pyx_codeobj__351;
static PyObject *__pyx_codeobj__353;
static PyObject *__pyx_codeobj__355;
static PyObject *__pyx_codeobj__357;
static PyObject *__pyx_codeobj__359;
static PyObject *__pyx_codeobj__361;
static PyObject *__pyx_codeobj__363;
static PyObject *__pyx_codeobj__366;
static PyObject *__pyx_codeobj__368;
static PyObject *__pyx_codeobj__370;
static PyObject *__pyx_codeobj__372;
static PyObject *__pyx_codeobj__374;
static PyObject *__pyx_codeobj__376;
static PyObject *__pyx_codeobj__378;
static PyObject *__pyx_codeobj__380;
static PyObject *__pyx_codeobj__382;
static PyObject *__pyx_codeobj__384;
static PyObject *__pyx_codeobj__386;
static PyObject *__pyx_codeobj__389;
static PyObject *__pyx_codeobj__391;
static PyObject *__pyx_codeobj__393;
static PyObject *__pyx_codeobj__395;
static PyObject *__pyx_codeobj__397;
static PyObject *__pyx_codeobj__400;
static PyObject *__pyx_codeobj__402;
static PyObject *__pyx_codeobj__404;
static PyObject *__pyx_codeobj__406;
static PyObject *__pyx_codeobj__408;
static PyObject *__pyx_codeobj__410;
static PyObject *__pyx_codeobj__412;
static PyObject *__pyx_codeobj__414;
static PyObject *__pyx_codeobj__416;
static PyObject *__pyx_codeobj__418;
static PyObject *__pyx_codeobj__420;
static PyObject *__pyx_codeobj__422;
static PyObject *__pyx_codeobj__424;
static PyObject *__pyx_codeobj__426;
static PyObject *__pyx_codeobj__428;
static PyObject *__pyx_codeobj__430;
static PyObject *__pyx_codeobj__432;
static PyObject *__pyx_codeobj__434;
static PyObject *__pyx_codeobj__436;
static PyObject *__pyx_codeobj__438;
static PyObject *__pyx_codeobj__440;
static PyObject *__pyx_codeobj__442;
static PyObject *__pyx_codeobj__444;
static PyObject *__pyx_codeobj__446;
static PyObject *__pyx_codeobj__448;
static PyObject *__pyx_codeobj__450;
static PyObject *__pyx_codeobj__452;
static PyObject *__pyx_codeobj__454;
static PyObject *__pyx_codeobj__456;
static PyObject *__pyx_codeobj__458;
static PyObject *__pyx_codeobj__460;
static PyObject *__pyx_codeobj__462;
static PyObject *__pyx_codeobj__464;
static PyObject *__pyx_codeobj__466;
static PyObject *__pyx_codeobj__468;
static PyObject *__pyx_codeobj__470;
static PyObject *__pyx_codeobj__472;
static PyObject *__pyx_codeobj__474;
static PyObject *__pyx_codeobj__476;
static PyObject *__pyx_codeobj__478;
static PyObject *__pyx_codeobj__480;
static PyObject *__pyx_codeobj__482;
static PyObject *__pyx_codeobj__484;
static PyObject *__pyx_codeobj__486;
static PyObject *__pyx_codeobj__488;
static PyObject *__pyx_codeobj__490;
static PyObject *__pyx_codeobj__492;
static PyObject *__pyx_codeobj__494;
static PyObject *__pyx_codeobj__496;
static PyObject *__pyx_codeobj__498;
static PyObject *__pyx_codeobj__500;
static PyObject *__pyx_codeobj__502;
static PyObject *__pyx_codeobj__504;
static PyObject *__pyx_codeobj__506;
static PyObject *__pyx_codeobj__508;
static PyObject *__pyx_codeobj__510;
static PyObject *__pyx_codeobj__512;
static PyObject *__pyx_codeobj__514;
static PyObject *__pyx_codeobj__516;
static PyObject *__pyx_codeobj__518;
static PyObject *__pyx_codeobj__520;
static PyObject *__pyx_codeobj__522;
static PyObject *__pyx_codeobj__524;
static PyObject *__pyx_codeobj__526;
static PyObject *__pyx_codeobj__528;
static PyObject *__pyx_codeobj__530;
static PyObject *__pyx_codeobj__532;
static PyObject *__pyx_codeobj__534;
static PyObject *__pyx_codeobj__536;
static PyObject *__pyx_codeobj__538;
static PyObject *__pyx_codeobj__540;
static PyObject *__pyx_codeobj__542;
static PyObject *__pyx_codeobj__544;
static PyObject *__pyx_codeobj__546;
static PyObject *__pyx_codeobj__548;
static PyObject *__pyx_codeobj__550;
static PyObject *__pyx_codeobj__552;
static PyObject *__pyx_codeobj__554;
static PyObject *__pyx_codeobj__556;
static PyObject *__pyx_codeobj__558;
static PyObject *__pyx_codeobj__560;
static PyObject *__pyx_codeobj__562;
static PyObject *__pyx_codeobj__564;
static PyObject *__pyx_codeobj__566;
static PyObject *__pyx_codeobj__568;
static PyObject *__pyx_codeobj__570;
static PyObject *__pyx_codeobj__572;
static PyObject *__pyx_codeobj__574;
static PyObject *__pyx_codeobj__576;
static PyObject *__pyx_codeobj__578;
static PyObject *__pyx_codeobj__580;
static PyObject *__pyx_codeobj__582;
static PyObject *__pyx_codeobj__584;
static PyObject *__pyx_codeobj__586;
static PyObject *__pyx_codeobj__588;
static PyObject *__pyx_codeobj__590;
static PyObject *__pyx_codeobj__592;
static PyObject *__pyx_codeobj__594;
static PyObject *__pyx_codeobj__596;
static PyObject *__pyx_codeobj__598;
static PyObject *__pyx_codeobj__600;
static PyObject *__pyx_codeobj__602;
static PyObject *__pyx_codeobj__604;
static PyObject *__pyx_codeobj__606;
static PyObject *__pyx_codeobj__608;
static PyObject *__pyx_codeobj__610;
static PyObject *__pyx_codeobj__612;
static PyObject *__pyx_codeobj__614;
static PyObject *__pyx_codeobj__616;
static PyObject *__pyx_codeobj__618;
static PyObject *__pyx_codeobj__620;
static PyObject *__pyx_codeobj__622;
static PyObject *__pyx_codeobj__624;
static PyObject *__pyx_codeobj__626;
static PyObject *__pyx_codeobj__628;
static PyObject *__pyx_codeobj__630;
static PyObject *__pyx_codeobj__632;
static PyObject *__pyx_codeobj__634;
static PyObject *__pyx_codeobj__636;
static PyObject *__pyx_codeobj__638;
static PyObject *__pyx_codeobj__640;
static PyObject *__pyx_codeobj__642;
static PyObject *__pyx_codeobj__644;
static PyObject *__pyx_codeobj__646;
static PyObject *__pyx_codeobj__648;
static PyObject *__pyx_codeobj__650;
static PyObject *__pyx_codeobj__652;
static PyObject *__pyx_codeobj__654;
static PyObject *__pyx_codeobj__656;
static PyObject *__pyx_codeobj__658;
static PyObject *__pyx_codeobj__660;
static PyObject *__pyx_codeobj__662;
static PyObject *__pyx_codeobj__664;
static PyObject *__pyx_codeobj__666;
static PyObject *__pyx_codeobj__668;
static PyObject *__pyx_codeobj__670;
static PyObject *__pyx_codeobj__672;
static PyObject *__pyx_codeobj__674;
static PyObject *__pyx_codeobj__676;
static PyObject *__pyx_codeobj__678;
static PyObject *__pyx_codeobj__680;
static PyObject *__pyx_codeobj__682;
static PyObject *__pyx_codeobj__684;
static PyObject *__pyx_codeobj__686;
static PyObject *__pyx_codeobj__688;
static PyObject *__pyx_codeobj__690;
static PyObject *__pyx_codeobj__692;
static PyObject *__pyx_codeobj__694;
static PyObject *__pyx_codeobj__696;
static PyObject *__pyx_codeobj__698;
static PyObject *__pyx_codeobj__700;
static PyObject *__pyx_codeobj__702;
static PyObject *__pyx_codeobj__704;
static PyObject *__pyx_codeobj__706;
static PyObject *__pyx_codeobj__708;
static PyObject *__pyx_codeobj__710;
static PyObject *__pyx_codeobj__712;
static PyObject *__pyx_codeobj__714;
static PyObject *__pyx_codeobj__716;
static PyObject *__pyx_codeobj__718;
static PyObject *__pyx_codeobj__720;
static PyObject *__pyx_codeobj__722;
static PyObject *__pyx_codeobj__724;
static PyObject *__pyx_codeobj__726;
static PyObject *__pyx_codeobj__728;
static PyObject *__pyx_codeobj__730;
static PyObject *__pyx_codeobj__732;
static PyObject *__pyx_codeobj__734;
static PyObject *__pyx_codeobj__736;
static PyObject *__pyx_codeobj__738;
static PyObject *__pyx_codeobj__740;
static PyObject *__pyx_codeobj__742;
static PyObject *__pyx_codeobj__744;
static PyObject *__pyx_codeobj__746;
/* Late includes */


static PyObject *__pyx_pw_5talib_7_ta_lib_1_ta_check_success(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_v_description = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_check_success", 0);

  switch (__pyx_v_ret_code) {
    case 0:

    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    goto __pyx_L0;

    break;
    case 1:

    __Pyx_INCREF(__pyx_kp_s_Library_Not_Initialized_TA_LIB_N);
    __pyx_v_description = __pyx_kp_s_Library_Not_Initialized_TA_LIB_N;

    break;
    case 2:

    __Pyx_INCREF(__pyx_kp_s_Bad_Parameter_TA_BAD_PARAM);
    __pyx_v_description = __pyx_kp_s_Bad_Parameter_TA_BAD_PARAM;

    break;
    case 3:

    __Pyx_INCREF(__pyx_kp_s_Allocation_Error_TA_ALLOC_ERR);
    __pyx_v_description = __pyx_kp_s_Allocation_Error_TA_ALLOC_ERR;

    break;
    case 4:

    __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;

    break;
    case 5:

    __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;

    break;
    case 6:

    __Pyx_INCREF(__pyx_kp_s_Invalid_Handle_TA_INVALID_HANDLE);
    __pyx_v_description = __pyx_kp_s_Invalid_Handle_TA_INVALID_HANDLE;

    break;
    case 7:

    __Pyx_INCREF(__pyx_kp_s_Invalid_Parameter_Holder_TA_INVA);
    __pyx_v_description = __pyx_kp_s_Invalid_Parameter_Holder_TA_INVA;

    break;
    case 8:

    __Pyx_INCREF(__pyx_kp_s_Invalid_Parameter_Holder_Type_TA);
    __pyx_v_description = __pyx_kp_s_Invalid_Parameter_Holder_Type_TA;

    break;
    case 9:

    __Pyx_INCREF(__pyx_kp_s_Invalid_Parameter_Function_TA_IN);
    __pyx_v_description = __pyx_kp_s_Invalid_Parameter_Function_TA_IN;

    break;
    case 10:

    __Pyx_INCREF(__pyx_kp_s_Input_Not_All_Initialized_TA_INP);
    __pyx_v_description = __pyx_kp_s_Input_Not_All_Initialized_TA_INP;

    break;
    case 11:

    __Pyx_INCREF(__pyx_kp_s_Output_Not_All_Initialized_TA_OU);
    __pyx_v_description = __pyx_kp_s_Output_Not_All_Initialized_TA_OU;

    break;
    case 12:

    __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;

    break;
    case 13:

    __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;

    break;
    case 14:

    __Pyx_INCREF(__pyx_kp_s_Invalid_List_Type_TA_INVALID_LIS);
    __pyx_v_description = __pyx_kp_s_Invalid_List_Type_TA_INVALID_LIS;

    break;
    case 15:

    __Pyx_INCREF(__pyx_kp_s_Bad_Object_TA_BAD_OBJECT);
    __pyx_v_description = __pyx_kp_s_Bad_Object_TA_BAD_OBJECT;

    break;
    case 16:

    __Pyx_INCREF(__pyx_kp_s_Not_Supported_TA_NOT_SUPPORTED);
    __pyx_v_description = __pyx_kp_s_Not_Supported_TA_NOT_SUPPORTED;

    break;
    case 0x1388:

    __Pyx_INCREF(__pyx_kp_s_Internal_Error_TA_INTERNAL_ERROR);
    __pyx_v_description = __pyx_kp_s_Internal_Error_TA_INTERNAL_ERROR;

    break;
    case 0xFFFF:

    __Pyx_INCREF(__pyx_kp_s_Unknown_Error_TA_UNKNOWN_ERR);
    __pyx_v_description = __pyx_kp_s_Unknown_Error_TA_UNKNOWN_ERR;

    break;
    default:

    __Pyx_INCREF(__pyx_kp_s_Unknown_Error);
    __pyx_v_description = __pyx_kp_s_Unknown_Error;
    break;
  }

  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_function_name);
  __Pyx_GIVEREF(__pyx_v_function_name);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_function_name);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_description);
  __Pyx_GIVEREF(__pyx_v_description);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_description);
  __pyx_t_1 = 0;

  __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;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(0, 47, __pyx_L1_error)


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib._ta_check_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_description);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_1_ta_check_success(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5talib_7_ta_lib_1_ta_check_success(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_function_name = 0;
  TA_RetCode __pyx_v_ret_code;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_check_success (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_function_name,&__pyx_n_s_ret_code,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function_name)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ret_code)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_ta_check_success", 1, 2, 2, 1); __PYX_ERR(0, 6, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_ta_check_success") < 0)) __PYX_ERR(0, 6, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_function_name = ((PyObject*)values[0]);
    __pyx_v_ret_code = __Pyx_PyInt_As_TA_RetCode(values[1]); if (unlikely((__pyx_v_ret_code == ((TA_RetCode)-1)) && PyErr_Occurred())) __PYX_ERR(0, 6, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_ta_check_success", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib._ta_check_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_function_name), (&PyString_Type), 1, "function_name", 1))) __PYX_ERR(0, 6, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib__ta_check_success(__pyx_self, __pyx_v_function_name, __pyx_v_ret_code);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib__ta_check_success(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_check_success", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_v_function_name, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib._ta_check_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_3_ta_initialize(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_3_ta_initialize = {"_ta_initialize", (PyCFunction)__pyx_pw_5talib_7_ta_lib_3_ta_initialize, METH_NOARGS, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_3_ta_initialize(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_initialize (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_2_ta_initialize(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_2_ta_initialize(CYTHON_UNUSED PyObject *__pyx_self) {
  TA_RetCode __pyx_v_ret_code;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_initialize", 0);

  __pyx_v_ret_code = TA_Initialize();

  __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;


  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib._ta_initialize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_5_ta_shutdown(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_5_ta_shutdown = {"_ta_shutdown", (PyCFunction)__pyx_pw_5talib_7_ta_lib_5_ta_shutdown, METH_NOARGS, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_5_ta_shutdown(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_shutdown (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_4_ta_shutdown(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_4_ta_shutdown(CYTHON_UNUSED PyObject *__pyx_self) {
  TA_RetCode __pyx_v_ret_code;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_shutdown", 0);

  __pyx_v_ret_code = TA_Shutdown();

  __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;


  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib._ta_shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_1__init__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5talib_7_ta_lib_7MA_Type_1__init__, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_1__init__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_7MA_Type___init__(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_kp_s_Simple_Moving_Average) < 0) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  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;

  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  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;

  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  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;

  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  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;

  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  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;

  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  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;

  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  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;

  __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)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  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;

  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;


  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.MA_Type.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_3__getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__ = {"__getitem__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_7MA_Type_3__getitem__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_3__getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_type_ = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_type,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_type)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, 1); __PYX_ERR(0, 76, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__getitem__") < 0)) __PYX_ERR(0, 76, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_type_ = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 76, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MA_Type.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(__pyx_self, __pyx_v_self, __pyx_v_type_);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_type_) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__getitem__", 0);

  __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);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_type_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib.MA_Type.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_7_ta_set_unstable_period(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_7_ta_set_unstable_period = {"_ta_set_unstable_period", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_7_ta_set_unstable_period, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_7_ta_set_unstable_period(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_period = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_set_unstable_period (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_period,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_period)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, 1); __PYX_ERR(0, 90, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_ta_set_unstable_period") < 0)) __PYX_ERR(0, 90, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_name = values[0];
    __pyx_v_period = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 90, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib._ta_set_unstable_period", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_6_ta_set_unstable_period(__pyx_self, __pyx_v_name, __pyx_v_period);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_set_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_period) {
  TA_RetCode __pyx_v_ret_code;
  TA_FuncUnstId __pyx_v_id;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  TA_FuncUnstId __pyx_t_3;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_set_unstable_period", 0);

  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyInt_As_TA_FuncUnstId(__pyx_t_2); if (unlikely((__pyx_t_3 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(0, 92, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_id = __pyx_t_3;

  __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);

  __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;


  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib._ta_set_unstable_period", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_9_ta_get_unstable_period(PyObject *__pyx_self, PyObject *__pyx_v_name); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9_ta_get_unstable_period = {"_ta_get_unstable_period", (PyCFunction)__pyx_pw_5talib_7_ta_lib_9_ta_get_unstable_period, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_9_ta_get_unstable_period(PyObject *__pyx_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_get_unstable_period (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8_ta_get_unstable_period(__pyx_self, ((PyObject *)__pyx_v_name));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_get_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name) {
  unsigned int __pyx_v_period;
  TA_FuncUnstId __pyx_v_id;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  TA_FuncUnstId __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_get_unstable_period", 0);

  __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)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyInt_As_TA_FuncUnstId(__pyx_t_2); if (unlikely((__pyx_t_3 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(0, 98, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_id = __pyx_t_3;

  __pyx_v_period = TA_GetUnstablePeriod(__pyx_v_id);

  __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);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib._ta_get_unstable_period", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_11_ta_set_compatibility(PyObject *__pyx_self, PyObject *__pyx_v_value); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11_ta_set_compatibility = {"_ta_set_compatibility", (PyCFunction)__pyx_pw_5talib_7_ta_lib_11_ta_set_compatibility, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_11_ta_set_compatibility(PyObject *__pyx_self, PyObject *__pyx_v_value) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_set_compatibility (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_10_ta_set_compatibility(__pyx_self, ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_set_compatibility(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value) {
  TA_RetCode __pyx_v_ret_code;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  TA_Compatibility __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_set_compatibility", 0);

  __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);

  __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;


  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib._ta_set_compatibility", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_13_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13_ta_get_compatibility = {"_ta_get_compatibility", (PyCFunction)__pyx_pw_5talib_7_ta_lib_13_ta_get_compatibility, METH_NOARGS, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_13_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_get_compatibility (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_12_ta_get_compatibility(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self) {
  int __pyx_v_value;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_get_compatibility", 0);

  __pyx_v_value = TA_GetCompatibility();

  __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);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib._ta_get_compatibility", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_set_candle_settings(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15_ta_set_candle_settings = {"_ta_set_candle_settings", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_15_ta_set_candle_settings, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_set_candle_settings(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_settingtype = 0;
  PyObject *__pyx_v_rangetype = 0;
  PyObject *__pyx_v_avgperiod = 0;
  PyObject *__pyx_v_factor = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_set_candle_settings (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_settingtype,&__pyx_n_s_rangetype,&__pyx_n_s_avgperiod,&__pyx_n_s_factor,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_settingtype)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rangetype)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, 1); __PYX_ERR(0, 124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_avgperiod)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, 2); __PYX_ERR(0, 124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_factor)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, 3); __PYX_ERR(0, 124, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_ta_set_candle_settings") < 0)) __PYX_ERR(0, 124, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_settingtype = values[0];
    __pyx_v_rangetype = values[1];
    __pyx_v_avgperiod = values[2];
    __pyx_v_factor = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 124, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib._ta_set_candle_settings", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_14_ta_set_candle_settings(__pyx_self, __pyx_v_settingtype, __pyx_v_rangetype, __pyx_v_avgperiod, __pyx_v_factor);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_set_candle_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype, PyObject *__pyx_v_rangetype, PyObject *__pyx_v_avgperiod, PyObject *__pyx_v_factor) {
  TA_RetCode __pyx_v_ret_code;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  TA_CandleSettingType __pyx_t_1;
  TA_RangeType __pyx_t_2;
  int __pyx_t_3;
  double __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_set_candle_settings", 0);

  __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);

  __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;


  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("talib._ta_lib._ta_set_candle_settings", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_restore_candle_default_settings(PyObject *__pyx_self, PyObject *__pyx_v_settingtype); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17_ta_restore_candle_default_settings = {"_ta_restore_candle_default_settings", (PyCFunction)__pyx_pw_5talib_7_ta_lib_17_ta_restore_candle_default_settings, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_restore_candle_default_settings(PyObject *__pyx_self, PyObject *__pyx_v_settingtype) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_restore_candle_default_settings (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_16_ta_restore_candle_default_settings(__pyx_self, ((PyObject *)__pyx_v_settingtype));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_restore_candle_default_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype) {
  TA_RetCode __pyx_v_ret_code;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  TA_CandleSettingType __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_restore_candle_default_settings", 0);

  __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);

  __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;


  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib._ta_restore_candle_default_settings", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static PyArrayObject *__pyx_f_5talib_7_ta_lib_check_array(PyArrayObject *__pyx_v_real) {
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("check_array", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyArray_TYPE(__pyx_v_real) != NPY_DOUBLE) != 0);
  if (unlikely(__pyx_t_1)) {

    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple_, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 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(2, 22, __pyx_L1_error)

  }

  __pyx_t_1 = ((__pyx_v_real->nd != 1) != 0);
  if (unlikely(__pyx_t_1)) {

    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 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(2, 24, __pyx_L1_error)

  }

  __pyx_t_1 = ((!((PyArray_FLAGS(__pyx_v_real) & NPY_C_CONTIGUOUS) != 0)) != 0);
  if (__pyx_t_1) {

    __pyx_t_2 = ((PyObject *)PyArray_GETCONTIGUOUS(__pyx_v_real)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 26, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_2));
    __pyx_t_2 = 0;

  }

  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_real));
  __pyx_r = __pyx_v_real;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib.check_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static npy_intp __pyx_f_5talib_7_ta_lib_check_length2(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2) {
  npy_intp __pyx_v_length;
  npy_intp __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("check_length2", 0);

  __pyx_v_length = (__pyx_v_a1->dimensions[0]);

  __pyx_t_1 = ((__pyx_v_length != (__pyx_v_a2->dimensions[0])) != 0);
  if (unlikely(__pyx_t_1)) {

    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 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(2, 34, __pyx_L1_error)

  }

  __pyx_r = __pyx_v_length;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib.check_length2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static npy_intp __pyx_f_5talib_7_ta_lib_check_length3(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2, PyArrayObject *__pyx_v_a3) {
  npy_intp __pyx_v_length;
  npy_intp __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("check_length3", 0);

  __pyx_v_length = (__pyx_v_a1->dimensions[0]);

  __pyx_t_1 = ((__pyx_v_length != (__pyx_v_a2->dimensions[0])) != 0);
  if (unlikely(__pyx_t_1)) {

    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 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(2, 42, __pyx_L1_error)

  }

  __pyx_t_1 = ((__pyx_v_length != (__pyx_v_a3->dimensions[0])) != 0);
  if (unlikely(__pyx_t_1)) {

    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 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(2, 44, __pyx_L1_error)

  }

  __pyx_r = __pyx_v_length;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib.check_length3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static npy_intp __pyx_f_5talib_7_ta_lib_check_length4(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2, PyArrayObject *__pyx_v_a3, PyArrayObject *__pyx_v_a4) {
  npy_intp __pyx_v_length;
  npy_intp __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("check_length4", 0);

  __pyx_v_length = (__pyx_v_a1->dimensions[0]);

  __pyx_t_1 = ((__pyx_v_length != (__pyx_v_a2->dimensions[0])) != 0);
  if (unlikely(__pyx_t_1)) {

    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 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(2, 52, __pyx_L1_error)

  }

  __pyx_t_1 = ((__pyx_v_length != (__pyx_v_a3->dimensions[0])) != 0);
  if (unlikely(__pyx_t_1)) {

    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 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(2, 54, __pyx_L1_error)

  }

  __pyx_t_1 = ((__pyx_v_length != (__pyx_v_a4->dimensions[0])) != 0);
  if (unlikely(__pyx_t_1)) {

    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 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(2, 56, __pyx_L1_error)

  }

  __pyx_r = __pyx_v_length;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib.check_length4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static npy_int __pyx_f_5talib_7_ta_lib_check_begidx1(npy_intp __pyx_v_length, double *__pyx_v_a1) {
  double __pyx_v_val;
  long __pyx_v_i;
  npy_int __pyx_r;
  __Pyx_RefNannyDeclarations
  npy_intp __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("check_begidx1", 0);

  __pyx_t_1 = __pyx_v_length;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {

    __pyx_v_val = (__pyx_v_a1[__pyx_v_i]);

    __pyx_t_2 = ((__pyx_v_val != __pyx_v_val) != 0);
    if (__pyx_t_2) {

      goto __pyx_L3_continue;

    }

    __pyx_r = __pyx_v_i;
    goto __pyx_L0;
    __pyx_L3_continue:;
  }
  /*else*/ {

    __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 68, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(2, 68, __pyx_L1_error)
  }


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.check_begidx1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


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;
  long __pyx_v_i;
  npy_int __pyx_r;
  __Pyx_RefNannyDeclarations
  npy_intp __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("check_begidx2", 0);

  __pyx_t_1 = __pyx_v_length;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {

    __pyx_v_val = (__pyx_v_a1[__pyx_v_i]);

    __pyx_t_2 = ((__pyx_v_val != __pyx_v_val) != 0);
    if (__pyx_t_2) {

      goto __pyx_L3_continue;

    }

    __pyx_v_val = (__pyx_v_a2[__pyx_v_i]);

    __pyx_t_2 = ((__pyx_v_val != __pyx_v_val) != 0);
    if (__pyx_t_2) {

      goto __pyx_L3_continue;

    }

    __pyx_r = __pyx_v_i;
    goto __pyx_L0;
    __pyx_L3_continue:;
  }
  /*else*/ {

    __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(2, 82, __pyx_L1_error)
  }


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.check_begidx2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


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;
  long __pyx_v_i;
  npy_int __pyx_r;
  __Pyx_RefNannyDeclarations
  npy_intp __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("check_begidx3", 0);

  __pyx_t_1 = __pyx_v_length;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {

    __pyx_v_val = (__pyx_v_a1[__pyx_v_i]);

    __pyx_t_2 = ((__pyx_v_val != __pyx_v_val) != 0);
    if (__pyx_t_2) {

      goto __pyx_L3_continue;

    }

    __pyx_v_val = (__pyx_v_a2[__pyx_v_i]);

    __pyx_t_2 = ((__pyx_v_val != __pyx_v_val) != 0);
    if (__pyx_t_2) {

      goto __pyx_L3_continue;

    }

    __pyx_v_val = (__pyx_v_a3[__pyx_v_i]);

    __pyx_t_2 = ((__pyx_v_val != __pyx_v_val) != 0);
    if (__pyx_t_2) {

      goto __pyx_L3_continue;

    }

    __pyx_r = __pyx_v_i;
    goto __pyx_L0;
    __pyx_L3_continue:;
  }
  /*else*/ {

    __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(2, 99, __pyx_L1_error)
  }


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.check_begidx3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


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;
  long __pyx_v_i;
  npy_int __pyx_r;
  __Pyx_RefNannyDeclarations
  npy_intp __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("check_begidx4", 0);

  __pyx_t_1 = __pyx_v_length;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {

    __pyx_v_val = (__pyx_v_a1[__pyx_v_i]);

    __pyx_t_2 = ((__pyx_v_val != __pyx_v_val) != 0);
    if (__pyx_t_2) {

      goto __pyx_L3_continue;

    }

    __pyx_v_val = (__pyx_v_a2[__pyx_v_i]);

    __pyx_t_2 = ((__pyx_v_val != __pyx_v_val) != 0);
    if (__pyx_t_2) {

      goto __pyx_L3_continue;

    }

    __pyx_v_val = (__pyx_v_a3[__pyx_v_i]);

    __pyx_t_2 = ((__pyx_v_val != __pyx_v_val) != 0);
    if (__pyx_t_2) {

      goto __pyx_L3_continue;

    }

    __pyx_v_val = (__pyx_v_a4[__pyx_v_i]);

    __pyx_t_2 = ((__pyx_v_val != __pyx_v_val) != 0);
    if (__pyx_t_2) {

      goto __pyx_L3_continue;

    }

    __pyx_r = __pyx_v_i;
    goto __pyx_L0;
    __pyx_L3_continue:;
  }
  /*else*/ {

    __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 119, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(2, 119, __pyx_L1_error)
  }


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.check_begidx4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


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;
  double *__pyx_v_outreal_data;
  long __pyx_v_i;
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_t_3;
  npy_intp __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_double_array", 0);

  __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_length), NPY_DOUBLE, NPY_DEFAULT)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_outreal_data = ((double *)__pyx_v_outreal->data);

  __pyx_t_2 = __pyx_v_length;
  __pyx_t_3 = __pyx_v_lookback;
  if (((__pyx_t_2 < __pyx_t_3) != 0)) {
    __pyx_t_4 = __pyx_t_2;
  } else {
    __pyx_t_4 = __pyx_t_3;
  }
  __pyx_t_2 = __pyx_t_4;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {

    (__pyx_v_outreal_data[__pyx_v_i]) = __pyx_v_5talib_7_ta_lib_NaN;
  }

  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = __pyx_v_outreal;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.make_double_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


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;
  int *__pyx_v_outinteger_data;
  long __pyx_v_i;
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_t_3;
  npy_intp __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_int_array", 0);

  __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_length), NPY_INT32, NPY_DEFAULT)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_outinteger_data = ((int *)__pyx_v_outinteger->data);

  __pyx_t_2 = __pyx_v_length;
  __pyx_t_3 = __pyx_v_lookback;
  if (((__pyx_t_2 < __pyx_t_3) != 0)) {
    __pyx_t_4 = __pyx_t_2;
  } else {
    __pyx_t_4 = __pyx_t_3;
  }
  __pyx_t_2 = __pyx_t_4;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {

    (__pyx_v_outinteger_data[__pyx_v_i]) = 0;
  }

  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = __pyx_v_outinteger;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.make_int_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_19ACOS(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_18ACOS[] = " ACOS(real)\n\n    Vector Trigonometric ACos (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19ACOS = {"ACOS", (PyCFunction)__pyx_pw_5talib_7_ta_lib_19ACOS, METH_O, __pyx_doc_5talib_7_ta_lib_18ACOS};
static PyObject *__pyx_pw_5talib_7_ta_lib_19ACOS(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ACOS (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 144, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_18ACOS(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_18ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ACOS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 163, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_ACOS_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(2, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_ACOS(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_21AD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_20AD[] = " AD(high, low, close, volume)\n\n    Chaikin A/D Line (Volume Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close', 'volume']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21AD = {"AD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_21AD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20AD};
static PyObject *__pyx_pw_5talib_7_ta_lib_21AD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  PyArrayObject *__pyx_v_volume = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("AD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_volume,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, 1); __PYX_ERR(2, 173, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, 2); __PYX_ERR(2, 173, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_volume)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, 3); __PYX_ERR(2, 173, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "AD") < 0)) __PYX_ERR(2, 173, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    __pyx_v_volume = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 173, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.AD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 173, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 173, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 173, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(2, 173, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_20AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_20AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("AD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);
  __Pyx_INCREF((PyObject *)__pyx_v_volume);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 194, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data), ((double *)__pyx_v_volume->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 195, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_AD_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(2, 198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_AD(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (((double *)__pyx_v_volume->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.AD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XDECREF((PyObject *)__pyx_v_volume);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_23ADD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_22ADD[] = " ADD(real0, real1)\n\n    Vector Arithmetic Add (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23ADD = {"ADD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_23ADD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22ADD};
static PyObject *__pyx_pw_5talib_7_ta_lib_23ADD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real0 = 0;
  PyArrayObject *__pyx_v_real1 = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ADD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, 1); __PYX_ERR(2, 205, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ADD") < 0)) __PYX_ERR(2, 205, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_real0 = ((PyArrayObject *)values[0]);
    __pyx_v_real1 = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 205, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.ADD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(2, 205, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(2, 205, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_22ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_22ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ADD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real0);
  __Pyx_INCREF((PyObject *)__pyx_v_real1);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 225, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_real0->data), ((double *)__pyx_v_real1->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 226, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_ADD_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(2, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_ADD(0, __pyx_v_endidx, (((double *)__pyx_v_real0->data) + __pyx_v_begidx), (((double *)__pyx_v_real1->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.ADD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real0);
  __Pyx_XDECREF((PyObject *)__pyx_v_real1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_25ADOSC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_24ADOSC[] = " ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\n    Chaikin A/D Oscillator (Volume Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close', 'volume']\n    Parameters:\n        fastperiod: 3\n        slowperiod: 10\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25ADOSC = {"ADOSC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_25ADOSC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24ADOSC};
static PyObject *__pyx_pw_5talib_7_ta_lib_25ADOSC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  PyArrayObject *__pyx_v_volume = 0;
  int __pyx_v_fastperiod;
  int __pyx_v_slowperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ADOSC (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_volume,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, 1); __PYX_ERR(2, 236, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, 2); __PYX_ERR(2, 236, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_volume)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, 3); __PYX_ERR(2, 236, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastperiod);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowperiod);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ADOSC") < 0)) __PYX_ERR(2, 236, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    __pyx_v_volume = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 236, __pyx_L3_error)
    } else {
      __pyx_v_fastperiod = ((int)-2147483648);
    }
    if (values[5]) {
      __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 236, __pyx_L3_error)
    } else {
      __pyx_v_slowperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 236, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 236, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 236, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 236, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(2, 236, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_24ADOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_24ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ADOSC", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);
  __Pyx_INCREF((PyObject *)__pyx_v_volume);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 260, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data), ((double *)__pyx_v_volume->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 261, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_ADOSC(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (((double *)__pyx_v_volume->data) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XDECREF((PyObject *)__pyx_v_volume);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_27ADX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_26ADX[] = " ADX(high, low, close[, timeperiod=?])\n\n    Average Directional Movement Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_27ADX = {"ADX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_27ADX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26ADX};
static PyObject *__pyx_pw_5talib_7_ta_lib_27ADX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ADX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, 1); __PYX_ERR(2, 271, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, 2); __PYX_ERR(2, 271, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ADX") < 0)) __PYX_ERR(2, 271, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 271, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 271, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.ADX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 271, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 271, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 271, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_26ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_26ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ADX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 291, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 293, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 294, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_ADX_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_ADX(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.ADX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_29ADXR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_28ADXR[] = " ADXR(high, low, close[, timeperiod=?])\n\n    Average Directional Movement Index Rating (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_29ADXR = {"ADXR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_29ADXR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_28ADXR};
static PyObject *__pyx_pw_5talib_7_ta_lib_29ADXR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ADXR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, 1); __PYX_ERR(2, 304, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, 2); __PYX_ERR(2, 304, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ADXR") < 0)) __PYX_ERR(2, 304, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 304, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 304, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 304, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 304, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 304, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_28ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_28ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ADXR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 326, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 327, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_ADXR_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_ADXR(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_31APO(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_30APO[] = " APO(real[, fastperiod=?, slowperiod=?, matype=?])\n\n    Absolute Price Oscillator (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        slowperiod: 26\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_31APO = {"APO", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_31APO, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_30APO};
static PyObject *__pyx_pw_5talib_7_ta_lib_31APO(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_fastperiod;
  int __pyx_v_slowperiod;
  int __pyx_v_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("APO (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,&__pyx_n_s_matype,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowperiod);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matype);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "APO") < 0)) __PYX_ERR(2, 337, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 337, __pyx_L3_error)
    } else {
      __pyx_v_fastperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 337, __pyx_L3_error)
    } else {
      __pyx_v_slowperiod = ((int)-2147483648);
    }
    if (values[3]) {
      __pyx_v_matype = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 337, __pyx_L3_error)
    } else {
      __pyx_v_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 337, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.APO", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 337, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_30APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_30APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("APO", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 360, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_APO(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.APO", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_33AROON(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_32AROON[] = " AROON(high, low[, timeperiod=?])\n\n    Aroon (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        aroondown\n        aroonup\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_33AROON = {"AROON", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_33AROON, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_32AROON};
static PyObject *__pyx_pw_5talib_7_ta_lib_33AROON(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("AROON (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, 1); __PYX_ERR(2, 370, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "AROON") < 0)) __PYX_ERR(2, 370, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 370, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 370, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 370, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 370, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_32AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_32AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outaroondown = 0;
  PyArrayObject *__pyx_v_outaroonup = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("AROON", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 393, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 394, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_AROON_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_AROON(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outaroondown->data) + __pyx_v_lookback), (((double *)__pyx_v_outaroonup->data) + __pyx_v_lookback));

  __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(2, 400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_outaroondown));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outaroondown));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outaroondown));
  __Pyx_INCREF(((PyObject *)__pyx_v_outaroonup));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outaroonup));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outaroonup));
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outaroondown);
  __Pyx_XDECREF((PyObject *)__pyx_v_outaroonup);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_35AROONOSC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_34AROONOSC[] = " AROONOSC(high, low[, timeperiod=?])\n\n    Aroon Oscillator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_35AROONOSC = {"AROONOSC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_35AROONOSC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_34AROONOSC};
static PyObject *__pyx_pw_5talib_7_ta_lib_35AROONOSC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("AROONOSC (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, 1); __PYX_ERR(2, 405, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "AROONOSC") < 0)) __PYX_ERR(2, 405, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 405, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 405, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 405, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 405, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_34AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_34AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("AROONOSC", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 426, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 427, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_AROONOSC_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_AROONOSC(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_37ASIN(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_36ASIN[] = " ASIN(real)\n\n    Vector Trigonometric ASin (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_37ASIN = {"ASIN", (PyCFunction)__pyx_pw_5talib_7_ta_lib_37ASIN, METH_O, __pyx_doc_5talib_7_ta_lib_36ASIN};
static PyObject *__pyx_pw_5talib_7_ta_lib_37ASIN(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ASIN (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 437, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_36ASIN(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_36ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ASIN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 456, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_ASIN_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(2, 459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_ASIN(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_39ATAN(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_38ATAN[] = " ATAN(real)\n\n    Vector Trigonometric ATan (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_39ATAN = {"ATAN", (PyCFunction)__pyx_pw_5talib_7_ta_lib_39ATAN, METH_O, __pyx_doc_5talib_7_ta_lib_38ATAN};
static PyObject *__pyx_pw_5talib_7_ta_lib_39ATAN(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ATAN (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 466, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_38ATAN(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_38ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ATAN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 485, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_ATAN_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(2, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_ATAN(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_41ATR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_40ATR[] = " ATR(high, low, close[, timeperiod=?])\n\n    Average True Range (Volatility Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_41ATR = {"ATR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_41ATR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_40ATR};
static PyObject *__pyx_pw_5talib_7_ta_lib_41ATR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ATR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, 1); __PYX_ERR(2, 495, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, 2); __PYX_ERR(2, 495, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ATR") < 0)) __PYX_ERR(2, 495, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 495, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 495, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.ATR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 495, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 495, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 495, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_40ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_40ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ATR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 517, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 518, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_ATR_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_ATR(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.ATR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_43AVGPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_42AVGPRICE[] = " AVGPRICE(open, high, low, close)\n\n    Average Price (Price Transform)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_43AVGPRICE = {"AVGPRICE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_43AVGPRICE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_42AVGPRICE};
static PyObject *__pyx_pw_5talib_7_ta_lib_43AVGPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("AVGPRICE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, 1); __PYX_ERR(2, 528, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, 2); __PYX_ERR(2, 528, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, 3); __PYX_ERR(2, 528, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "AVGPRICE") < 0)) __PYX_ERR(2, 528, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 528, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 528, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 528, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 528, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 528, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_42AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_42AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("AVGPRICE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 549, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 550, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_AVGPRICE_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(2, 553, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_AVGPRICE(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_45BBANDS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_44BBANDS[] = " BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\n    Bollinger Bands (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        nbdevup: 2\n        nbdevdn: 2\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        upperband\n        middleband\n        lowerband\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_45BBANDS = {"BBANDS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_45BBANDS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_44BBANDS};
static PyObject *__pyx_pw_5talib_7_ta_lib_45BBANDS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  double __pyx_v_nbdevup;
  double __pyx_v_nbdevdn;
  int __pyx_v_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("BBANDS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_nbdevup,&__pyx_n_s_nbdevdn,&__pyx_n_s_matype,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nbdevup);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nbdevdn);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matype);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "BBANDS") < 0)) __PYX_ERR(2, 560, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 560, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_nbdevup = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 560, __pyx_L3_error)
    } else {
      __pyx_v_nbdevup = ((double)-4e37);
    }
    if (values[3]) {
      __pyx_v_nbdevdn = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 560, __pyx_L3_error)
    } else {
      __pyx_v_nbdevdn = ((double)-4e37);
    }
    if (values[4]) {
      __pyx_v_matype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 560, __pyx_L3_error)
    } else {
      __pyx_v_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 560, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 560, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_44BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_44BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outrealupperband = 0;
  PyArrayObject *__pyx_v_outrealmiddleband = 0;
  PyArrayObject *__pyx_v_outreallowerband = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("BBANDS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 586, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 588, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_BBANDS(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outrealupperband->data) + __pyx_v_lookback), (((double *)__pyx_v_outrealmiddleband->data) + __pyx_v_lookback), (((double *)__pyx_v_outreallowerband->data) + __pyx_v_lookback));

  __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(2, 595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_outrealupperband));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outrealupperband));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband));
  __Pyx_INCREF(((PyObject *)__pyx_v_outrealmiddleband));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outrealmiddleband));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband));
  __Pyx_INCREF(((PyObject *)__pyx_v_outreallowerband));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outreallowerband));
  PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband));
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband);
  __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband);
  __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_47BETA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_46BETA[] = " BETA(real0, real1[, timeperiod=?])\n\n    Beta (Statistic Functions)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Parameters:\n        timeperiod: 5\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_47BETA = {"BETA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_47BETA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_46BETA};
static PyObject *__pyx_pw_5talib_7_ta_lib_47BETA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real0 = 0;
  PyArrayObject *__pyx_v_real1 = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("BETA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, 1); __PYX_ERR(2, 600, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "BETA") < 0)) __PYX_ERR(2, 600, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real0 = ((PyArrayObject *)values[0]);
    __pyx_v_real1 = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 600, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 600, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.BETA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(2, 600, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(2, 600, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_46BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_46BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("BETA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real0);
  __Pyx_INCREF((PyObject *)__pyx_v_real1);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 622, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_real0->data), ((double *)__pyx_v_real1->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 623, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_BETA_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_BETA(0, __pyx_v_endidx, (((double *)__pyx_v_real0->data) + __pyx_v_begidx), (((double *)__pyx_v_real1->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.BETA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real0);
  __Pyx_XDECREF((PyObject *)__pyx_v_real1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_49BOP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_48BOP[] = " BOP(open, high, low, close)\n\n    Balance Of Power (Momentum Indicators)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_49BOP = {"BOP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_49BOP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_48BOP};
static PyObject *__pyx_pw_5talib_7_ta_lib_49BOP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("BOP (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, 1); __PYX_ERR(2, 633, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, 2); __PYX_ERR(2, 633, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, 3); __PYX_ERR(2, 633, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "BOP") < 0)) __PYX_ERR(2, 633, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 633, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 633, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 633, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 633, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 633, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_48BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_48BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("BOP", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 653, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 654, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 655, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_BOP_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(2, 658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_BOP(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_51CCI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_50CCI[] = " CCI(high, low, close[, timeperiod=?])\n\n    Commodity Channel Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_51CCI = {"CCI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_51CCI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_50CCI};
static PyObject *__pyx_pw_5talib_7_ta_lib_51CCI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CCI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, 1); __PYX_ERR(2, 665, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, 2); __PYX_ERR(2, 665, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CCI") < 0)) __PYX_ERR(2, 665, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 665, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 665, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CCI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 665, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 665, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 665, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_50CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_50CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CCI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 684, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 685, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 687, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 688, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CCI_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CCI(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CCI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_53CDL2CROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_52CDL2CROWS[] = " CDL2CROWS(open, high, low, close)\n\n    Two Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_53CDL2CROWS = {"CDL2CROWS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_53CDL2CROWS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_52CDL2CROWS};
static PyObject *__pyx_pw_5talib_7_ta_lib_53CDL2CROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDL2CROWS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, 1); __PYX_ERR(2, 698, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, 2); __PYX_ERR(2, 698, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, 3); __PYX_ERR(2, 698, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDL2CROWS") < 0)) __PYX_ERR(2, 698, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 698, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 698, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 698, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 698, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 698, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_52CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_52CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDL2CROWS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 716, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 718, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 719, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 720, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL2CROWS_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(2, 723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDL2CROWS(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_55CDL3BLACKCROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_54CDL3BLACKCROWS[] = " CDL3BLACKCROWS(open, high, low, close)\n\n    Three Black Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_55CDL3BLACKCROWS = {"CDL3BLACKCROWS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_55CDL3BLACKCROWS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_54CDL3BLACKCROWS};
static PyObject *__pyx_pw_5talib_7_ta_lib_55CDL3BLACKCROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDL3BLACKCROWS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, 1); __PYX_ERR(2, 730, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, 2); __PYX_ERR(2, 730, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, 3); __PYX_ERR(2, 730, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDL3BLACKCROWS") < 0)) __PYX_ERR(2, 730, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 730, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 730, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 730, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 730, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 730, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_54CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_54CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDL3BLACKCROWS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 751, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 752, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3BLACKCROWS_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(2, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDL3BLACKCROWS(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_57CDL3INSIDE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_56CDL3INSIDE[] = " CDL3INSIDE(open, high, low, close)\n\n    Three Inside Up/Down (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_57CDL3INSIDE = {"CDL3INSIDE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_57CDL3INSIDE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_56CDL3INSIDE};
static PyObject *__pyx_pw_5talib_7_ta_lib_57CDL3INSIDE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDL3INSIDE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, 1); __PYX_ERR(2, 762, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, 2); __PYX_ERR(2, 762, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, 3); __PYX_ERR(2, 762, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDL3INSIDE") < 0)) __PYX_ERR(2, 762, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 762, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 762, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 762, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 762, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 762, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_56CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_56CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDL3INSIDE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 779, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 783, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 784, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3INSIDE_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(2, 787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDL3INSIDE(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_59CDL3LINESTRIKE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_58CDL3LINESTRIKE[] = " CDL3LINESTRIKE(open, high, low, close)\n\n    Three-Line Strike  (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_59CDL3LINESTRIKE = {"CDL3LINESTRIKE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_59CDL3LINESTRIKE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_58CDL3LINESTRIKE};
static PyObject *__pyx_pw_5talib_7_ta_lib_59CDL3LINESTRIKE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDL3LINESTRIKE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, 1); __PYX_ERR(2, 794, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, 2); __PYX_ERR(2, 794, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, 3); __PYX_ERR(2, 794, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDL3LINESTRIKE") < 0)) __PYX_ERR(2, 794, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 794, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 794, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 794, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 794, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 794, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_58CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDL3LINESTRIKE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 811, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 814, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 815, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 816, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3LINESTRIKE_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(2, 819, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDL3LINESTRIKE(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_61CDL3OUTSIDE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_60CDL3OUTSIDE[] = " CDL3OUTSIDE(open, high, low, close)\n\n    Three Outside Up/Down (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_61CDL3OUTSIDE = {"CDL3OUTSIDE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_61CDL3OUTSIDE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_60CDL3OUTSIDE};
static PyObject *__pyx_pw_5talib_7_ta_lib_61CDL3OUTSIDE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDL3OUTSIDE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, 1); __PYX_ERR(2, 826, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, 2); __PYX_ERR(2, 826, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, 3); __PYX_ERR(2, 826, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDL3OUTSIDE") < 0)) __PYX_ERR(2, 826, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 826, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 826, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 826, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 826, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 826, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_60CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDL3OUTSIDE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 847, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 848, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3OUTSIDE_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(2, 851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDL3OUTSIDE(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 853, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_63CDL3STARSINSOUTH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_62CDL3STARSINSOUTH[] = " CDL3STARSINSOUTH(open, high, low, close)\n\n    Three Stars In The South (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_63CDL3STARSINSOUTH = {"CDL3STARSINSOUTH", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_63CDL3STARSINSOUTH, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_62CDL3STARSINSOUTH};
static PyObject *__pyx_pw_5talib_7_ta_lib_63CDL3STARSINSOUTH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDL3STARSINSOUTH (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, 1); __PYX_ERR(2, 858, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, 2); __PYX_ERR(2, 858, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, 3); __PYX_ERR(2, 858, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDL3STARSINSOUTH") < 0)) __PYX_ERR(2, 858, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 858, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 858, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 858, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 858, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 858, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_62CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDL3STARSINSOUTH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 877, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 879, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 880, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3STARSINSOUTH_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(2, 883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDL3STARSINSOUTH(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_65CDL3WHITESOLDIERS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_64CDL3WHITESOLDIERS[] = " CDL3WHITESOLDIERS(open, high, low, close)\n\n    Three Advancing White Soldiers (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_65CDL3WHITESOLDIERS = {"CDL3WHITESOLDIERS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_65CDL3WHITESOLDIERS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_64CDL3WHITESOLDIERS};
static PyObject *__pyx_pw_5talib_7_ta_lib_65CDL3WHITESOLDIERS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, 1); __PYX_ERR(2, 890, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, 2); __PYX_ERR(2, 890, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, 3); __PYX_ERR(2, 890, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDL3WHITESOLDIERS") < 0)) __PYX_ERR(2, 890, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 890, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 890, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 890, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 890, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 890, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_64CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 911, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 912, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3WHITESOLDIERS_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(2, 915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDL3WHITESOLDIERS(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_67CDLABANDONEDBABY(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_66CDLABANDONEDBABY[] = " CDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\n    Abandoned Baby (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_67CDLABANDONEDBABY = {"CDLABANDONEDBABY", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_67CDLABANDONEDBABY, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_66CDLABANDONEDBABY};
static PyObject *__pyx_pw_5talib_7_ta_lib_67CDLABANDONEDBABY(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLABANDONEDBABY (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, 1); __PYX_ERR(2, 922, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, 2); __PYX_ERR(2, 922, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, 3); __PYX_ERR(2, 922, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLABANDONEDBABY") < 0)) __PYX_ERR(2, 922, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 922, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.3);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 922, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 922, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 922, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 922, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 922, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_66CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_66CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLABANDONEDBABY", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 945, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 946, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLABANDONEDBABY(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_69CDLADVANCEBLOCK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_68CDLADVANCEBLOCK[] = " CDLADVANCEBLOCK(open, high, low, close)\n\n    Advance Block (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_69CDLADVANCEBLOCK = {"CDLADVANCEBLOCK", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_69CDLADVANCEBLOCK, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_68CDLADVANCEBLOCK};
static PyObject *__pyx_pw_5talib_7_ta_lib_69CDLADVANCEBLOCK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLADVANCEBLOCK (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, 1); __PYX_ERR(2, 956, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, 2); __PYX_ERR(2, 956, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, 3); __PYX_ERR(2, 956, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLADVANCEBLOCK") < 0)) __PYX_ERR(2, 956, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 956, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 956, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 956, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 956, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 956, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_68CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_68CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLADVANCEBLOCK", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 973, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 976, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 977, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 978, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLADVANCEBLOCK_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(2, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLADVANCEBLOCK(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_71CDLBELTHOLD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_70CDLBELTHOLD[] = " CDLBELTHOLD(open, high, low, close)\n\n    Belt-hold (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_71CDLBELTHOLD = {"CDLBELTHOLD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_71CDLBELTHOLD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_70CDLBELTHOLD};
static PyObject *__pyx_pw_5talib_7_ta_lib_71CDLBELTHOLD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLBELTHOLD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, 1); __PYX_ERR(2, 988, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, 2); __PYX_ERR(2, 988, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, 3); __PYX_ERR(2, 988, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLBELTHOLD") < 0)) __PYX_ERR(2, 988, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 988, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 988, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 988, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 988, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 988, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_70CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_70CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLBELTHOLD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1007, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1008, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1009, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1010, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_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(2, 1013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLBELTHOLD(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1015, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_73CDLBREAKAWAY(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_72CDLBREAKAWAY[] = " CDLBREAKAWAY(open, high, low, close)\n\n    Breakaway (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_73CDLBREAKAWAY = {"CDLBREAKAWAY", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_73CDLBREAKAWAY, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_72CDLBREAKAWAY};
static PyObject *__pyx_pw_5talib_7_ta_lib_73CDLBREAKAWAY(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLBREAKAWAY (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, 1); __PYX_ERR(2, 1020, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, 2); __PYX_ERR(2, 1020, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, 3); __PYX_ERR(2, 1020, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLBREAKAWAY") < 0)) __PYX_ERR(2, 1020, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1020, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1020, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1020, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1020, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1020, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_72CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_72CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLBREAKAWAY", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1037, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1039, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1041, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1042, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBREAKAWAY_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(2, 1045, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLBREAKAWAY(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_75CDLCLOSINGMARUBOZU(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_74CDLCLOSINGMARUBOZU[] = " CDLCLOSINGMARUBOZU(open, high, low, close)\n\n    Closing Marubozu (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_75CDLCLOSINGMARUBOZU = {"CDLCLOSINGMARUBOZU", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_75CDLCLOSINGMARUBOZU, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_74CDLCLOSINGMARUBOZU};
static PyObject *__pyx_pw_5talib_7_ta_lib_75CDLCLOSINGMARUBOZU(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, 1); __PYX_ERR(2, 1052, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, 2); __PYX_ERR(2, 1052, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, 3); __PYX_ERR(2, 1052, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLCLOSINGMARUBOZU") < 0)) __PYX_ERR(2, 1052, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1052, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1052, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1052, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1052, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1052, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_74CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_74CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1069, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1072, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1073, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1074, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCLOSINGMARUBOZU_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(2, 1077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_77CDLCONCEALBABYSWALL(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_76CDLCONCEALBABYSWALL[] = " CDLCONCEALBABYSWALL(open, high, low, close)\n\n    Concealing Baby Swallow (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_77CDLCONCEALBABYSWALL = {"CDLCONCEALBABYSWALL", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_77CDLCONCEALBABYSWALL, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_76CDLCONCEALBABYSWALL};
static PyObject *__pyx_pw_5talib_7_ta_lib_77CDLCONCEALBABYSWALL(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, 1); __PYX_ERR(2, 1084, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, 2); __PYX_ERR(2, 1084, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, 3); __PYX_ERR(2, 1084, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLCONCEALBABYSWALL") < 0)) __PYX_ERR(2, 1084, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1084, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1084, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1084, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1084, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1084, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_76CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_76CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1105, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1106, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCONCEALBABYSWALL_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(2, 1109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLCONCEALBABYSWALL(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_79CDLCOUNTERATTACK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_78CDLCOUNTERATTACK[] = " CDLCOUNTERATTACK(open, high, low, close)\n\n    Counterattack (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_79CDLCOUNTERATTACK = {"CDLCOUNTERATTACK", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_79CDLCOUNTERATTACK, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_78CDLCOUNTERATTACK};
static PyObject *__pyx_pw_5talib_7_ta_lib_79CDLCOUNTERATTACK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLCOUNTERATTACK (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, 1); __PYX_ERR(2, 1116, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, 2); __PYX_ERR(2, 1116, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, 3); __PYX_ERR(2, 1116, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLCOUNTERATTACK") < 0)) __PYX_ERR(2, 1116, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1116, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1116, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1116, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1116, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1116, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_78CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLCOUNTERATTACK", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1137, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1138, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCOUNTERATTACK_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(2, 1141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLCOUNTERATTACK(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_81CDLDARKCLOUDCOVER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_80CDLDARKCLOUDCOVER[] = " CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\n    Dark Cloud Cover (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.5\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_81CDLDARKCLOUDCOVER = {"CDLDARKCLOUDCOVER", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_81CDLDARKCLOUDCOVER, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_80CDLDARKCLOUDCOVER};
static PyObject *__pyx_pw_5talib_7_ta_lib_81CDLDARKCLOUDCOVER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, 1); __PYX_ERR(2, 1148, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, 2); __PYX_ERR(2, 1148, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, 3); __PYX_ERR(2, 1148, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLDARKCLOUDCOVER") < 0)) __PYX_ERR(2, 1148, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 1148, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.5);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1148, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1148, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1148, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1148, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1148, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_80CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1171, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1172, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLDARKCLOUDCOVER(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_82CDLDOJI[] = " CDLDOJI(open, high, low, close)\n\n    Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_83CDLDOJI = {"CDLDOJI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_83CDLDOJI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_82CDLDOJI};
static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLDOJI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, 1); __PYX_ERR(2, 1182, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, 2); __PYX_ERR(2, 1182, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, 3); __PYX_ERR(2, 1182, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLDOJI") < 0)) __PYX_ERR(2, 1182, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1182, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1182, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1182, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1182, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1182, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_82CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLDOJI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1203, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1204, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJI_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(2, 1207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLDOJI(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLDOJISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_84CDLDOJISTAR[] = " CDLDOJISTAR(open, high, low, close)\n\n    Doji Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_85CDLDOJISTAR = {"CDLDOJISTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_85CDLDOJISTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_84CDLDOJISTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLDOJISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLDOJISTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, 1); __PYX_ERR(2, 1214, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, 2); __PYX_ERR(2, 1214, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, 3); __PYX_ERR(2, 1214, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLDOJISTAR") < 0)) __PYX_ERR(2, 1214, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1214, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1214, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1214, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1214, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1214, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_84CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLDOJISTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1235, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1236, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJISTAR_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(2, 1239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLDRAGONFLYDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_86CDLDRAGONFLYDOJI[] = " CDLDRAGONFLYDOJI(open, high, low, close)\n\n    Dragonfly Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_87CDLDRAGONFLYDOJI = {"CDLDRAGONFLYDOJI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_87CDLDRAGONFLYDOJI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_86CDLDRAGONFLYDOJI};
static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLDRAGONFLYDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, 1); __PYX_ERR(2, 1246, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, 2); __PYX_ERR(2, 1246, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, 3); __PYX_ERR(2, 1246, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLDRAGONFLYDOJI") < 0)) __PYX_ERR(2, 1246, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1246, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1246, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1246, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1246, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1246, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_86CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1267, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1268, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDRAGONFLYDOJI_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(2, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLDRAGONFLYDOJI(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLENGULFING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_88CDLENGULFING[] = " CDLENGULFING(open, high, low, close)\n\n    Engulfing Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_89CDLENGULFING = {"CDLENGULFING", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_89CDLENGULFING, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_88CDLENGULFING};
static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLENGULFING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLENGULFING (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, 1); __PYX_ERR(2, 1278, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, 2); __PYX_ERR(2, 1278, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, 3); __PYX_ERR(2, 1278, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLENGULFING") < 0)) __PYX_ERR(2, 1278, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1278, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1278, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1278, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1278, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1278, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_88CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLENGULFING", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1299, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1300, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLENGULFING_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(2, 1303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLENGULFING(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLEVENINGDOJISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_90CDLEVENINGDOJISTAR[] = " CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\n    Evening Doji Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_91CDLEVENINGDOJISTAR = {"CDLEVENINGDOJISTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_91CDLEVENINGDOJISTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_90CDLEVENINGDOJISTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLEVENINGDOJISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, 1); __PYX_ERR(2, 1310, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, 2); __PYX_ERR(2, 1310, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, 3); __PYX_ERR(2, 1310, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLEVENINGDOJISTAR") < 0)) __PYX_ERR(2, 1310, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 1310, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.3);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1310, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1310, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1310, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1310, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1310, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_90CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1333, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1334, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLEVENINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLEVENINGSTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_92CDLEVENINGSTAR[] = " CDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\n    Evening Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_93CDLEVENINGSTAR = {"CDLEVENINGSTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_93CDLEVENINGSTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_92CDLEVENINGSTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLEVENINGSTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLEVENINGSTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, 1); __PYX_ERR(2, 1344, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, 2); __PYX_ERR(2, 1344, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, 3); __PYX_ERR(2, 1344, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLEVENINGSTAR") < 0)) __PYX_ERR(2, 1344, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 1344, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.3);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1344, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1344, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1344, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1344, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1344, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_92CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLEVENINGSTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1367, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1368, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLEVENINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_94CDLGAPSIDESIDEWHITE[] = " CDLGAPSIDESIDEWHITE(open, high, low, close)\n\n    Up/Down-gap side-by-side white lines (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_95CDLGAPSIDESIDEWHITE = {"CDLGAPSIDESIDEWHITE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_95CDLGAPSIDESIDEWHITE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_94CDLGAPSIDESIDEWHITE};
static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, 1); __PYX_ERR(2, 1378, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, 2); __PYX_ERR(2, 1378, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, 3); __PYX_ERR(2, 1378, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLGAPSIDESIDEWHITE") < 0)) __PYX_ERR(2, 1378, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1378, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1378, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1378, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1378, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1378, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_94CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1399, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1400, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGAPSIDESIDEWHITE_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(2, 1403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLGRAVESTONEDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_96CDLGRAVESTONEDOJI[] = " CDLGRAVESTONEDOJI(open, high, low, close)\n\n    Gravestone Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_97CDLGRAVESTONEDOJI = {"CDLGRAVESTONEDOJI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_97CDLGRAVESTONEDOJI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_96CDLGRAVESTONEDOJI};
static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLGRAVESTONEDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, 1); __PYX_ERR(2, 1410, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, 2); __PYX_ERR(2, 1410, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, 3); __PYX_ERR(2, 1410, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLGRAVESTONEDOJI") < 0)) __PYX_ERR(2, 1410, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1410, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1410, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1410, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1410, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1410, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_96CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1428, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1431, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1432, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGRAVESTONEDOJI_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(2, 1435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLGRAVESTONEDOJI(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLHAMMER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_98CDLHAMMER[] = " CDLHAMMER(open, high, low, close)\n\n    Hammer (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_99CDLHAMMER = {"CDLHAMMER", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_99CDLHAMMER, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_98CDLHAMMER};
static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLHAMMER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLHAMMER (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, 1); __PYX_ERR(2, 1442, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, 2); __PYX_ERR(2, 1442, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, 3); __PYX_ERR(2, 1442, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLHAMMER") < 0)) __PYX_ERR(2, 1442, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1442, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1442, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1442, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1442, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1442, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_98CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLHAMMER", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1462, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1463, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1464, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHAMMER_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(2, 1467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLHAMMER(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLHANGINGMAN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_100CDLHANGINGMAN[] = " CDLHANGINGMAN(open, high, low, close)\n\n    Hanging Man (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_101CDLHANGINGMAN = {"CDLHANGINGMAN", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_101CDLHANGINGMAN, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_100CDLHANGINGMAN};
static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLHANGINGMAN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLHANGINGMAN (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, 1); __PYX_ERR(2, 1474, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, 2); __PYX_ERR(2, 1474, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, 3); __PYX_ERR(2, 1474, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLHANGINGMAN") < 0)) __PYX_ERR(2, 1474, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1474, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1474, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1474, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1474, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1474, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_100CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLHANGINGMAN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1495, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1496, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHANGINGMAN_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(2, 1499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLHANGINGMAN(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLHARAMI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_102CDLHARAMI[] = " CDLHARAMI(open, high, low, close)\n\n    Harami Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_103CDLHARAMI = {"CDLHARAMI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_103CDLHARAMI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_102CDLHARAMI};
static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLHARAMI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLHARAMI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, 1); __PYX_ERR(2, 1506, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, 2); __PYX_ERR(2, 1506, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, 3); __PYX_ERR(2, 1506, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLHARAMI") < 0)) __PYX_ERR(2, 1506, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1506, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1506, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1506, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1506, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1506, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_102CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLHARAMI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1527, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1528, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMI_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(2, 1531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLHARAMI(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLHARAMICROSS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_104CDLHARAMICROSS[] = " CDLHARAMICROSS(open, high, low, close)\n\n    Harami Cross Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_105CDLHARAMICROSS = {"CDLHARAMICROSS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_105CDLHARAMICROSS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_104CDLHARAMICROSS};
static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLHARAMICROSS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLHARAMICROSS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, 1); __PYX_ERR(2, 1538, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, 2); __PYX_ERR(2, 1538, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, 3); __PYX_ERR(2, 1538, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLHARAMICROSS") < 0)) __PYX_ERR(2, 1538, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1538, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1538, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1538, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1538, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1538, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_104CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLHARAMICROSS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1559, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1560, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMICROSS_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(2, 1563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLHARAMICROSS(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLHIGHWAVE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_106CDLHIGHWAVE[] = " CDLHIGHWAVE(open, high, low, close)\n\n    High-Wave Candle (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_107CDLHIGHWAVE = {"CDLHIGHWAVE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_107CDLHIGHWAVE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_106CDLHIGHWAVE};
static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLHIGHWAVE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLHIGHWAVE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, 1); __PYX_ERR(2, 1570, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, 2); __PYX_ERR(2, 1570, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, 3); __PYX_ERR(2, 1570, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLHIGHWAVE") < 0)) __PYX_ERR(2, 1570, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1570, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1570, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1570, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1570, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1570, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_106CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLHIGHWAVE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1591, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1592, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIGHWAVE_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(2, 1595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLHIGHWAVE(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1597, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLHIKKAKE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_108CDLHIKKAKE[] = " CDLHIKKAKE(open, high, low, close)\n\n    Hikkake Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_109CDLHIKKAKE = {"CDLHIKKAKE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_109CDLHIKKAKE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_108CDLHIKKAKE};
static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLHIKKAKE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLHIKKAKE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, 1); __PYX_ERR(2, 1602, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, 2); __PYX_ERR(2, 1602, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, 3); __PYX_ERR(2, 1602, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLHIKKAKE") < 0)) __PYX_ERR(2, 1602, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1602, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1602, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1602, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1602, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1602, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_108CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLHIKKAKE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1623, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1624, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKE_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(2, 1627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLHIKKAKE(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHIKKAKEMOD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_110CDLHIKKAKEMOD[] = " CDLHIKKAKEMOD(open, high, low, close)\n\n    Modified Hikkake Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_111CDLHIKKAKEMOD = {"CDLHIKKAKEMOD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_111CDLHIKKAKEMOD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_110CDLHIKKAKEMOD};
static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHIKKAKEMOD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLHIKKAKEMOD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, 1); __PYX_ERR(2, 1634, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, 2); __PYX_ERR(2, 1634, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, 3); __PYX_ERR(2, 1634, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLHIKKAKEMOD") < 0)) __PYX_ERR(2, 1634, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1634, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1634, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1634, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1634, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1634, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_110CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLHIKKAKEMOD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1653, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1655, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1656, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKEMOD_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(2, 1659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLHIKKAKEMOD(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHOMINGPIGEON(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_112CDLHOMINGPIGEON[] = " CDLHOMINGPIGEON(open, high, low, close)\n\n    Homing Pigeon (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_113CDLHOMINGPIGEON = {"CDLHOMINGPIGEON", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_113CDLHOMINGPIGEON, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_112CDLHOMINGPIGEON};
static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHOMINGPIGEON(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLHOMINGPIGEON (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, 1); __PYX_ERR(2, 1666, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, 2); __PYX_ERR(2, 1666, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, 3); __PYX_ERR(2, 1666, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLHOMINGPIGEON") < 0)) __PYX_ERR(2, 1666, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1666, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1666, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1666, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1666, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1666, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_112CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLHOMINGPIGEON", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1684, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1685, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1687, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1688, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHOMINGPIGEON_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(2, 1691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLHOMINGPIGEON(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLIDENTICAL3CROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_114CDLIDENTICAL3CROWS[] = " CDLIDENTICAL3CROWS(open, high, low, close)\n\n    Identical Three Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_115CDLIDENTICAL3CROWS = {"CDLIDENTICAL3CROWS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_115CDLIDENTICAL3CROWS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_114CDLIDENTICAL3CROWS};
static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLIDENTICAL3CROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, 1); __PYX_ERR(2, 1698, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, 2); __PYX_ERR(2, 1698, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, 3); __PYX_ERR(2, 1698, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLIDENTICAL3CROWS") < 0)) __PYX_ERR(2, 1698, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1698, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1698, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1698, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1698, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1698, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_114CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1716, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1718, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1719, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1720, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLIDENTICAL3CROWS_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(2, 1723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLIDENTICAL3CROWS(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLINNECK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_116CDLINNECK[] = " CDLINNECK(open, high, low, close)\n\n    In-Neck Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_117CDLINNECK = {"CDLINNECK", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_117CDLINNECK, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_116CDLINNECK};
static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLINNECK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLINNECK (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, 1); __PYX_ERR(2, 1730, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, 2); __PYX_ERR(2, 1730, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, 3); __PYX_ERR(2, 1730, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLINNECK") < 0)) __PYX_ERR(2, 1730, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1730, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1730, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1730, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1730, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1730, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_116CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLINNECK", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1751, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1752, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINNECK_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(2, 1755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLINNECK(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLINVERTEDHAMMER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_118CDLINVERTEDHAMMER[] = " CDLINVERTEDHAMMER(open, high, low, close)\n\n    Inverted Hammer (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_119CDLINVERTEDHAMMER = {"CDLINVERTEDHAMMER", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_119CDLINVERTEDHAMMER, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_118CDLINVERTEDHAMMER};
static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLINVERTEDHAMMER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, 1); __PYX_ERR(2, 1762, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, 2); __PYX_ERR(2, 1762, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, 3); __PYX_ERR(2, 1762, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLINVERTEDHAMMER") < 0)) __PYX_ERR(2, 1762, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1762, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1762, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1762, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1762, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1762, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_118CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1779, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1783, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1784, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINVERTEDHAMMER_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(2, 1787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLINVERTEDHAMMER(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLKICKING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_120CDLKICKING[] = " CDLKICKING(open, high, low, close)\n\n    Kicking (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_121CDLKICKING = {"CDLKICKING", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_121CDLKICKING, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_120CDLKICKING};
static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLKICKING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLKICKING (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, 1); __PYX_ERR(2, 1794, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, 2); __PYX_ERR(2, 1794, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, 3); __PYX_ERR(2, 1794, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLKICKING") < 0)) __PYX_ERR(2, 1794, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1794, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1794, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1794, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1794, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1794, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_120CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLKICKING", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1811, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1814, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1815, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1816, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKING_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(2, 1819, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLKICKING(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLKICKINGBYLENGTH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_122CDLKICKINGBYLENGTH[] = " CDLKICKINGBYLENGTH(open, high, low, close)\n\n    Kicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_123CDLKICKINGBYLENGTH = {"CDLKICKINGBYLENGTH", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_123CDLKICKINGBYLENGTH, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_122CDLKICKINGBYLENGTH};
static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLKICKINGBYLENGTH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, 1); __PYX_ERR(2, 1826, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, 2); __PYX_ERR(2, 1826, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, 3); __PYX_ERR(2, 1826, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLKICKINGBYLENGTH") < 0)) __PYX_ERR(2, 1826, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1826, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1826, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1826, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1826, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1826, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_122CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1847, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1848, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKINGBYLENGTH_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(2, 1851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLKICKINGBYLENGTH(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1853, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLLADDERBOTTOM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_124CDLLADDERBOTTOM[] = " CDLLADDERBOTTOM(open, high, low, close)\n\n    Ladder Bottom (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_125CDLLADDERBOTTOM = {"CDLLADDERBOTTOM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_125CDLLADDERBOTTOM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_124CDLLADDERBOTTOM};
static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLLADDERBOTTOM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLLADDERBOTTOM (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, 1); __PYX_ERR(2, 1858, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, 2); __PYX_ERR(2, 1858, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, 3); __PYX_ERR(2, 1858, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLLADDERBOTTOM") < 0)) __PYX_ERR(2, 1858, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1858, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1858, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1858, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1858, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1858, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_124CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLLADDERBOTTOM", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1877, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1879, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1880, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLADDERBOTTOM_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(2, 1883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLLADDERBOTTOM(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLLONGLEGGEDDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_126CDLLONGLEGGEDDOJI[] = " CDLLONGLEGGEDDOJI(open, high, low, close)\n\n    Long Legged Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_127CDLLONGLEGGEDDOJI = {"CDLLONGLEGGEDDOJI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_127CDLLONGLEGGEDDOJI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_126CDLLONGLEGGEDDOJI};
static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLLONGLEGGEDDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, 1); __PYX_ERR(2, 1890, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, 2); __PYX_ERR(2, 1890, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, 3); __PYX_ERR(2, 1890, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLLONGLEGGEDDOJI") < 0)) __PYX_ERR(2, 1890, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1890, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1890, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1890, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1890, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1890, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_126CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1911, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1912, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLEGGEDDOJI_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(2, 1915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLLONGLINE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_128CDLLONGLINE[] = " CDLLONGLINE(open, high, low, close)\n\n    Long Line Candle (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_129CDLLONGLINE = {"CDLLONGLINE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_129CDLLONGLINE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_128CDLLONGLINE};
static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLLONGLINE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLLONGLINE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, 1); __PYX_ERR(2, 1922, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, 2); __PYX_ERR(2, 1922, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, 3); __PYX_ERR(2, 1922, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLLONGLINE") < 0)) __PYX_ERR(2, 1922, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1922, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1922, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1922, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1922, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1922, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_128CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLLONGLINE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1943, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1944, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLINE_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(2, 1947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLLONGLINE(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLMARUBOZU(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_130CDLMARUBOZU[] = " CDLMARUBOZU(open, high, low, close)\n\n    Marubozu (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_131CDLMARUBOZU = {"CDLMARUBOZU", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_131CDLMARUBOZU, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_130CDLMARUBOZU};
static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLMARUBOZU(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLMARUBOZU (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, 1); __PYX_ERR(2, 1954, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, 2); __PYX_ERR(2, 1954, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, 3); __PYX_ERR(2, 1954, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLMARUBOZU") < 0)) __PYX_ERR(2, 1954, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1954, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1954, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1954, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1954, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1954, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_130CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLMARUBOZU", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1973, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 1975, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 1976, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMARUBOZU_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(2, 1979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 1981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLMATCHINGLOW(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_132CDLMATCHINGLOW[] = " CDLMATCHINGLOW(open, high, low, close)\n\n    Matching Low (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_133CDLMATCHINGLOW = {"CDLMATCHINGLOW", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_133CDLMATCHINGLOW, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_132CDLMATCHINGLOW};
static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLMATCHINGLOW(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLMATCHINGLOW (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, 1); __PYX_ERR(2, 1986, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, 2); __PYX_ERR(2, 1986, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, 3); __PYX_ERR(2, 1986, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLMATCHINGLOW") < 0)) __PYX_ERR(2, 1986, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1986, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 1986, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 1986, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 1986, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 1986, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_132CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLMATCHINGLOW", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2007, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2008, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATCHINGLOW_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(2, 2011, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLMATCHINGLOW(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLMATHOLD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_134CDLMATHOLD[] = " CDLMATHOLD(open, high, low, close[, penetration=?])\n\n    Mat Hold (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.5\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_135CDLMATHOLD = {"CDLMATHOLD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_135CDLMATHOLD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_134CDLMATHOLD};
static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLMATHOLD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLMATHOLD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, 1); __PYX_ERR(2, 2018, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, 2); __PYX_ERR(2, 2018, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, 3); __PYX_ERR(2, 2018, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLMATHOLD") < 0)) __PYX_ERR(2, 2018, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 2018, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.5);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2018, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2018, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2018, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2018, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2018, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_134CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLMATHOLD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2037, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2039, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2041, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2042, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATHOLD_Lookback(__pyx_v_penetration));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2045, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLMATHOLD(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLMORNINGDOJISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_136CDLMORNINGDOJISTAR[] = " CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\n    Morning Doji Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_137CDLMORNINGDOJISTAR = {"CDLMORNINGDOJISTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_137CDLMORNINGDOJISTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_136CDLMORNINGDOJISTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLMORNINGDOJISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, 1); __PYX_ERR(2, 2052, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, 2); __PYX_ERR(2, 2052, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, 3); __PYX_ERR(2, 2052, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLMORNINGDOJISTAR") < 0)) __PYX_ERR(2, 2052, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 2052, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.3);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2052, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2052, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2052, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2052, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2052, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_136CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2072, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2075, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2076, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLMORNINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2081, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLMORNINGSTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_138CDLMORNINGSTAR[] = " CDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\n    Morning Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_139CDLMORNINGSTAR = {"CDLMORNINGSTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_139CDLMORNINGSTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_138CDLMORNINGSTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLMORNINGSTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLMORNINGSTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, 1); __PYX_ERR(2, 2086, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, 2); __PYX_ERR(2, 2086, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, 3); __PYX_ERR(2, 2086, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLMORNINGSTAR") < 0)) __PYX_ERR(2, 2086, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 2086, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.3);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2086, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2086, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2086, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2086, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2086, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_138CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLMORNINGSTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2109, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2110, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLMORNINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLONNECK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_140CDLONNECK[] = " CDLONNECK(open, high, low, close)\n\n    On-Neck Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_141CDLONNECK = {"CDLONNECK", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_141CDLONNECK, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_140CDLONNECK};
static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLONNECK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLONNECK (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, 1); __PYX_ERR(2, 2120, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, 2); __PYX_ERR(2, 2120, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, 3); __PYX_ERR(2, 2120, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLONNECK") < 0)) __PYX_ERR(2, 2120, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2120, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2120, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2120, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2120, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2120, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_140CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLONNECK", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2141, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2142, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLONNECK_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(2, 2145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLONNECK(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLPIERCING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_142CDLPIERCING[] = " CDLPIERCING(open, high, low, close)\n\n    Piercing Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_143CDLPIERCING = {"CDLPIERCING", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_143CDLPIERCING, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_142CDLPIERCING};
static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLPIERCING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLPIERCING (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, 1); __PYX_ERR(2, 2152, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, 2); __PYX_ERR(2, 2152, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, 3); __PYX_ERR(2, 2152, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLPIERCING") < 0)) __PYX_ERR(2, 2152, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2152, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2152, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2152, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2152, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2152, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_142CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLPIERCING", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2173, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2174, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLPIERCING_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(2, 2177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLPIERCING(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLRICKSHAWMAN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_144CDLRICKSHAWMAN[] = " CDLRICKSHAWMAN(open, high, low, close)\n\n    Rickshaw Man (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_145CDLRICKSHAWMAN = {"CDLRICKSHAWMAN", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_145CDLRICKSHAWMAN, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_144CDLRICKSHAWMAN};
static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLRICKSHAWMAN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLRICKSHAWMAN (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, 1); __PYX_ERR(2, 2184, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, 2); __PYX_ERR(2, 2184, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, 3); __PYX_ERR(2, 2184, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLRICKSHAWMAN") < 0)) __PYX_ERR(2, 2184, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2184, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2184, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2184, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2184, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2184, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_144CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLRICKSHAWMAN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2205, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2206, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRICKSHAWMAN_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(2, 2209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLRICKSHAWMAN(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLRISEFALL3METHODS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_146CDLRISEFALL3METHODS[] = " CDLRISEFALL3METHODS(open, high, low, close)\n\n    Rising/Falling Three Methods (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_147CDLRISEFALL3METHODS = {"CDLRISEFALL3METHODS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_147CDLRISEFALL3METHODS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_146CDLRISEFALL3METHODS};
static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLRISEFALL3METHODS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, 1); __PYX_ERR(2, 2216, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, 2); __PYX_ERR(2, 2216, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, 3); __PYX_ERR(2, 2216, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLRISEFALL3METHODS") < 0)) __PYX_ERR(2, 2216, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2216, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2216, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2216, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2216, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2216, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_146CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2237, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2238, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRISEFALL3METHODS_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(2, 2241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLRISEFALL3METHODS(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLSEPARATINGLINES(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_148CDLSEPARATINGLINES[] = " CDLSEPARATINGLINES(open, high, low, close)\n\n    Separating Lines (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_149CDLSEPARATINGLINES = {"CDLSEPARATINGLINES", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_149CDLSEPARATINGLINES, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_148CDLSEPARATINGLINES};
static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLSEPARATINGLINES(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLSEPARATINGLINES (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, 1); __PYX_ERR(2, 2248, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, 2); __PYX_ERR(2, 2248, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, 3); __PYX_ERR(2, 2248, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLSEPARATINGLINES") < 0)) __PYX_ERR(2, 2248, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2248, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2248, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2248, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2248, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2248, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_148CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLSEPARATINGLINES", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2269, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2270, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSEPARATINGLINES_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(2, 2273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLSEPARATINGLINES(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLSHOOTINGSTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_150CDLSHOOTINGSTAR[] = " CDLSHOOTINGSTAR(open, high, low, close)\n\n    Shooting Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_151CDLSHOOTINGSTAR = {"CDLSHOOTINGSTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_151CDLSHOOTINGSTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_150CDLSHOOTINGSTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLSHOOTINGSTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, 1); __PYX_ERR(2, 2280, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, 2); __PYX_ERR(2, 2280, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, 3); __PYX_ERR(2, 2280, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLSHOOTINGSTAR") < 0)) __PYX_ERR(2, 2280, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2280, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2280, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2280, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2280, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2280, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_150CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2301, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2302, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHOOTINGSTAR_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(2, 2305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLSHOOTINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLSHORTLINE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_152CDLSHORTLINE[] = " CDLSHORTLINE(open, high, low, close)\n\n    Short Line Candle (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_153CDLSHORTLINE = {"CDLSHORTLINE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_153CDLSHORTLINE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_152CDLSHORTLINE};
static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLSHORTLINE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLSHORTLINE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, 1); __PYX_ERR(2, 2312, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, 2); __PYX_ERR(2, 2312, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, 3); __PYX_ERR(2, 2312, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLSHORTLINE") < 0)) __PYX_ERR(2, 2312, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2312, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2312, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2312, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2312, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2312, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_152CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLSHORTLINE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2333, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2334, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHORTLINE_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(2, 2337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLSHORTLINE(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLSPINNINGTOP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_154CDLSPINNINGTOP[] = " CDLSPINNINGTOP(open, high, low, close)\n\n    Spinning Top (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_155CDLSPINNINGTOP = {"CDLSPINNINGTOP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_155CDLSPINNINGTOP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_154CDLSPINNINGTOP};
static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLSPINNINGTOP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLSPINNINGTOP (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, 1); __PYX_ERR(2, 2344, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, 2); __PYX_ERR(2, 2344, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, 3); __PYX_ERR(2, 2344, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLSPINNINGTOP") < 0)) __PYX_ERR(2, 2344, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2344, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2344, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2344, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2344, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2344, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_154CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLSPINNINGTOP", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2362, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2365, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2366, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSPINNINGTOP_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(2, 2369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLSPINNINGTOP(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLSTALLEDPATTERN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_156CDLSTALLEDPATTERN[] = " CDLSTALLEDPATTERN(open, high, low, close)\n\n    Stalled Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_157CDLSTALLEDPATTERN = {"CDLSTALLEDPATTERN", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_157CDLSTALLEDPATTERN, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_156CDLSTALLEDPATTERN};
static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLSTALLEDPATTERN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, 1); __PYX_ERR(2, 2376, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, 2); __PYX_ERR(2, 2376, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, 3); __PYX_ERR(2, 2376, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLSTALLEDPATTERN") < 0)) __PYX_ERR(2, 2376, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2376, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2376, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2376, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2376, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2376, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_156CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2397, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2398, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTALLEDPATTERN_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(2, 2401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLSTALLEDPATTERN(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLSTICKSANDWICH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_158CDLSTICKSANDWICH[] = " CDLSTICKSANDWICH(open, high, low, close)\n\n    Stick Sandwich (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_159CDLSTICKSANDWICH = {"CDLSTICKSANDWICH", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_159CDLSTICKSANDWICH, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_158CDLSTICKSANDWICH};
static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLSTICKSANDWICH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLSTICKSANDWICH (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, 1); __PYX_ERR(2, 2408, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, 2); __PYX_ERR(2, 2408, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, 3); __PYX_ERR(2, 2408, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLSTICKSANDWICH") < 0)) __PYX_ERR(2, 2408, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2408, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2408, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2408, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2408, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2408, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_158CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLSTICKSANDWICH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2428, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2429, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2430, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTICKSANDWICH_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(2, 2433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLSTICKSANDWICH(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLTAKURI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_160CDLTAKURI[] = " CDLTAKURI(open, high, low, close)\n\n    Takuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_161CDLTAKURI = {"CDLTAKURI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_161CDLTAKURI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_160CDLTAKURI};
static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLTAKURI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLTAKURI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, 1); __PYX_ERR(2, 2440, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, 2); __PYX_ERR(2, 2440, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, 3); __PYX_ERR(2, 2440, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLTAKURI") < 0)) __PYX_ERR(2, 2440, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2440, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2440, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2440, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2440, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2440, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_160CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLTAKURI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2461, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2462, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTAKURI_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(2, 2465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLTAKURI(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLTASUKIGAP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_162CDLTASUKIGAP[] = " CDLTASUKIGAP(open, high, low, close)\n\n    Tasuki Gap (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_163CDLTASUKIGAP = {"CDLTASUKIGAP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_163CDLTASUKIGAP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_162CDLTASUKIGAP};
static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLTASUKIGAP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLTASUKIGAP (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, 1); __PYX_ERR(2, 2472, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, 2); __PYX_ERR(2, 2472, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, 3); __PYX_ERR(2, 2472, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLTASUKIGAP") < 0)) __PYX_ERR(2, 2472, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2472, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2472, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2472, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2472, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2472, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_162CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLTASUKIGAP", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2493, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2494, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTASUKIGAP_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(2, 2497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLTASUKIGAP(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLTHRUSTING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_164CDLTHRUSTING[] = " CDLTHRUSTING(open, high, low, close)\n\n    Thrusting Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_165CDLTHRUSTING = {"CDLTHRUSTING", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_165CDLTHRUSTING, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_164CDLTHRUSTING};
static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLTHRUSTING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLTHRUSTING (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, 1); __PYX_ERR(2, 2504, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, 2); __PYX_ERR(2, 2504, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, 3); __PYX_ERR(2, 2504, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLTHRUSTING") < 0)) __PYX_ERR(2, 2504, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2504, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2504, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2504, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2504, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2504, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_164CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLTHRUSTING", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2525, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2526, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTHRUSTING_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(2, 2529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLTHRUSTING(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLTRISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_166CDLTRISTAR[] = " CDLTRISTAR(open, high, low, close)\n\n    Tristar Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_167CDLTRISTAR = {"CDLTRISTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_167CDLTRISTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_166CDLTRISTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLTRISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLTRISTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, 1); __PYX_ERR(2, 2536, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, 2); __PYX_ERR(2, 2536, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, 3); __PYX_ERR(2, 2536, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLTRISTAR") < 0)) __PYX_ERR(2, 2536, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2536, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2536, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2536, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2536, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2536, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_166CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLTRISTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2553, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2557, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2558, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTRISTAR_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(2, 2561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLTRISTAR(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLUNIQUE3RIVER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_168CDLUNIQUE3RIVER[] = " CDLUNIQUE3RIVER(open, high, low, close)\n\n    Unique 3 River (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_169CDLUNIQUE3RIVER = {"CDLUNIQUE3RIVER", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_169CDLUNIQUE3RIVER, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_168CDLUNIQUE3RIVER};
static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLUNIQUE3RIVER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, 1); __PYX_ERR(2, 2568, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, 2); __PYX_ERR(2, 2568, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, 3); __PYX_ERR(2, 2568, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLUNIQUE3RIVER") < 0)) __PYX_ERR(2, 2568, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2568, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2568, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2568, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2568, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2568, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_168CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2586, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2589, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2590, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUNIQUE3RIVER_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(2, 2593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLUNIQUE3RIVER(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_170CDLUPSIDEGAP2CROWS[] = " CDLUPSIDEGAP2CROWS(open, high, low, close)\n\n    Upside Gap Two Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_171CDLUPSIDEGAP2CROWS = {"CDLUPSIDEGAP2CROWS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_171CDLUPSIDEGAP2CROWS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_170CDLUPSIDEGAP2CROWS};
static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLUPSIDEGAP2CROWS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, 1); __PYX_ERR(2, 2600, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, 2); __PYX_ERR(2, 2600, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, 3); __PYX_ERR(2, 2600, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLUPSIDEGAP2CROWS") < 0)) __PYX_ERR(2, 2600, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2600, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2600, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2600, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2600, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2600, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_170CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLUPSIDEGAP2CROWS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2621, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2622, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUPSIDEGAP2CROWS_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(2, 2625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLXSIDEGAP3METHODS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_172CDLXSIDEGAP3METHODS[] = " CDLXSIDEGAP3METHODS(open, high, low, close)\n\n    Upside/Downside Gap Three Methods (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_173CDLXSIDEGAP3METHODS = {"CDLXSIDEGAP3METHODS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_173CDLXSIDEGAP3METHODS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_172CDLXSIDEGAP3METHODS};
static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLXSIDEGAP3METHODS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CDLXSIDEGAP3METHODS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, 1); __PYX_ERR(2, 2632, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, 2); __PYX_ERR(2, 2632, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, 3); __PYX_ERR(2, 2632, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CDLXSIDEGAP3METHODS") < 0)) __PYX_ERR(2, 2632, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2632, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(2, 2632, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2632, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2632, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2632, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_172CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CDLXSIDEGAP3METHODS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2653, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_open->data), ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2654, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CDLXSIDEGAP3METHODS_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(2, 2657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS(0, __pyx_v_endidx, (((double *)__pyx_v_open->data) + __pyx_v_begidx), (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 2659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_175CEIL(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_174CEIL[] = " CEIL(real)\n\n    Vector Ceil (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_175CEIL = {"CEIL", (PyCFunction)__pyx_pw_5talib_7_ta_lib_175CEIL, METH_O, __pyx_doc_5talib_7_ta_lib_174CEIL};
static PyObject *__pyx_pw_5talib_7_ta_lib_175CEIL(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CEIL (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 2664, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_174CEIL(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_174CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CEIL", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 2683, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CEIL_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(2, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CEIL(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 2688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_177CMO(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_176CMO[] = " CMO(real[, timeperiod=?])\n\n    Chande Momentum Oscillator (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_177CMO = {"CMO", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_177CMO, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_176CMO};
static PyObject *__pyx_pw_5talib_7_ta_lib_177CMO(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CMO (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CMO") < 0)) __PYX_ERR(2, 2693, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 2693, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2693, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CMO", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 2693, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_176CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_176CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CMO", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 2714, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CMO_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CMO(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 2719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CMO", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_179CORREL(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_178CORREL[] = " CORREL(real0, real1[, timeperiod=?])\n\n    Pearson's Correlation Coefficient (r) (Statistic Functions)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_179CORREL = {"CORREL", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_179CORREL, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_178CORREL};
static PyObject *__pyx_pw_5talib_7_ta_lib_179CORREL(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real0 = 0;
  PyArrayObject *__pyx_v_real1 = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("CORREL (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, 1); __PYX_ERR(2, 2724, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CORREL") < 0)) __PYX_ERR(2, 2724, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real0 = ((PyArrayObject *)values[0]);
    __pyx_v_real1 = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 2724, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2724, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(2, 2724, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(2, 2724, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_178CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_178CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("CORREL", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real0);
  __Pyx_INCREF((PyObject *)__pyx_v_real1);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2746, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_real0->data), ((double *)__pyx_v_real1->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2747, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_CORREL_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_CORREL(0, __pyx_v_endidx, (((double *)__pyx_v_real0->data) + __pyx_v_begidx), (((double *)__pyx_v_real1->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 2752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real0);
  __Pyx_XDECREF((PyObject *)__pyx_v_real1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_181COS(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_180COS[] = " COS(real)\n\n    Vector Trigonometric Cos (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_181COS = {"COS", (PyCFunction)__pyx_pw_5talib_7_ta_lib_181COS, METH_O, __pyx_doc_5talib_7_ta_lib_180COS};
static PyObject *__pyx_pw_5talib_7_ta_lib_181COS(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("COS (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 2757, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_180COS(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_180COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("COS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 2776, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_COS_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(2, 2779, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_COS(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 2781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.COS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_183COSH(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_182COSH[] = " COSH(real)\n\n    Vector Trigonometric Cosh (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_183COSH = {"COSH", (PyCFunction)__pyx_pw_5talib_7_ta_lib_183COSH, METH_O, __pyx_doc_5talib_7_ta_lib_182COSH};
static PyObject *__pyx_pw_5talib_7_ta_lib_183COSH(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("COSH (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 2786, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_182COSH(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_182COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("COSH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 2805, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_COSH_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(2, 2808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_COSH(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 2810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.COSH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_185DEMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_184DEMA[] = " DEMA(real[, timeperiod=?])\n\n    Double Exponential Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_185DEMA = {"DEMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_185DEMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_184DEMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_185DEMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("DEMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "DEMA") < 0)) __PYX_ERR(2, 2815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 2815, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 2815, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_184DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_184DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("DEMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 2836, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_DEMA_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_DEMA(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 2841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_187DIV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_186DIV[] = " DIV(real0, real1)\n\n    Vector Arithmetic Div (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_187DIV = {"DIV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_187DIV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_186DIV};
static PyObject *__pyx_pw_5talib_7_ta_lib_187DIV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real0 = 0;
  PyArrayObject *__pyx_v_real1 = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("DIV (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, 1); __PYX_ERR(2, 2846, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "DIV") < 0)) __PYX_ERR(2, 2846, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_real0 = ((PyArrayObject *)values[0]);
    __pyx_v_real1 = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2846, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.DIV", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(2, 2846, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(2, 2846, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_186DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_186DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("DIV", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real0);
  __Pyx_INCREF((PyObject *)__pyx_v_real1);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2864, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2865, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2866, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_real0->data), ((double *)__pyx_v_real1->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2867, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_DIV_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(2, 2870, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_DIV(0, __pyx_v_endidx, (((double *)__pyx_v_real0->data) + __pyx_v_begidx), (((double *)__pyx_v_real1->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 2872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.DIV", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real0);
  __Pyx_XDECREF((PyObject *)__pyx_v_real1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_189DX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_188DX[] = " DX(high, low, close[, timeperiod=?])\n\n    Directional Movement Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_189DX = {"DX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_189DX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_188DX};
static PyObject *__pyx_pw_5talib_7_ta_lib_189DX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("DX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, 1); __PYX_ERR(2, 2877, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, 2); __PYX_ERR(2, 2877, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "DX") < 0)) __PYX_ERR(2, 2877, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 2877, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2877, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 2877, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 2877, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 2877, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_188DX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_188DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("DX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 2899, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 2900, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_DX_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2903, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_DX(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 2905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_191EMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_190EMA[] = " EMA(real[, timeperiod=?])\n\n    Exponential Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_191EMA = {"EMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_191EMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_190EMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_191EMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("EMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "EMA") < 0)) __PYX_ERR(2, 2910, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 2910, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 2910, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 2910, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_190EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_190EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("EMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 2931, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_EMA_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2934, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_EMA(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 2936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_193EXP(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_192EXP[] = " EXP(real)\n\n    Vector Arithmetic Exp (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_193EXP = {"EXP", (PyCFunction)__pyx_pw_5talib_7_ta_lib_193EXP, METH_O, __pyx_doc_5talib_7_ta_lib_192EXP};
static PyObject *__pyx_pw_5talib_7_ta_lib_193EXP(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("EXP (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 2941, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_192EXP(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_192EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("EXP", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 2960, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_EXP_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(2, 2963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_EXP(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 2965, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.EXP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_195FLOOR(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_194FLOOR[] = " FLOOR(real)\n\n    Vector Floor (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_195FLOOR = {"FLOOR", (PyCFunction)__pyx_pw_5talib_7_ta_lib_195FLOOR, METH_O, __pyx_doc_5talib_7_ta_lib_194FLOOR};
static PyObject *__pyx_pw_5talib_7_ta_lib_195FLOOR(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("FLOOR (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 2970, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_194FLOOR(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_194FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("FLOOR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 2989, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_FLOOR_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(2, 2992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_FLOOR(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 2994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_197HT_DCPERIOD(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_196HT_DCPERIOD[] = " HT_DCPERIOD(real)\n\n    Hilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_197HT_DCPERIOD = {"HT_DCPERIOD", (PyCFunction)__pyx_pw_5talib_7_ta_lib_197HT_DCPERIOD, METH_O, __pyx_doc_5talib_7_ta_lib_196HT_DCPERIOD};
static PyObject *__pyx_pw_5talib_7_ta_lib_197HT_DCPERIOD(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("HT_DCPERIOD (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 2999, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_196HT_DCPERIOD(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_196HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("HT_DCPERIOD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3018, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPERIOD_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(2, 3021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_HT_DCPERIOD(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_199HT_DCPHASE(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_198HT_DCPHASE[] = " HT_DCPHASE(real)\n\n    Hilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_199HT_DCPHASE = {"HT_DCPHASE", (PyCFunction)__pyx_pw_5talib_7_ta_lib_199HT_DCPHASE, METH_O, __pyx_doc_5talib_7_ta_lib_198HT_DCPHASE};
static PyObject *__pyx_pw_5talib_7_ta_lib_199HT_DCPHASE(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("HT_DCPHASE (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3028, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_198HT_DCPHASE(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_198HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("HT_DCPHASE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3045, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3047, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPHASE_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(2, 3050, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_HT_DCPHASE(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_201HT_PHASOR(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_200HT_PHASOR[] = " HT_PHASOR(real)\n\n    Hilbert Transform - Phasor Components (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        inphase\n        quadrature\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_201HT_PHASOR = {"HT_PHASOR", (PyCFunction)__pyx_pw_5talib_7_ta_lib_201HT_PHASOR, METH_O, __pyx_doc_5talib_7_ta_lib_200HT_PHASOR};
static PyObject *__pyx_pw_5talib_7_ta_lib_201HT_PHASOR(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("HT_PHASOR (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3057, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_200HT_PHASOR(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_200HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinphase = 0;
  PyArrayObject *__pyx_v_outquadrature = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("HT_PHASOR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3078, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_HT_PHASOR_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(2, 3081, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_HT_PHASOR(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outinphase->data) + __pyx_v_lookback), (((double *)__pyx_v_outquadrature->data) + __pyx_v_lookback));

  __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(2, 3084, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinphase));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outinphase));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outinphase));
  __Pyx_INCREF(((PyObject *)__pyx_v_outquadrature));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outquadrature));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outquadrature));
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinphase);
  __Pyx_XDECREF((PyObject *)__pyx_v_outquadrature);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_203HT_SINE(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_202HT_SINE[] = " HT_SINE(real)\n\n    Hilbert Transform - SineWave (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        sine\n        leadsine\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_203HT_SINE = {"HT_SINE", (PyCFunction)__pyx_pw_5talib_7_ta_lib_203HT_SINE, METH_O, __pyx_doc_5talib_7_ta_lib_202HT_SINE};
static PyObject *__pyx_pw_5talib_7_ta_lib_203HT_SINE(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("HT_SINE (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3089, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_202HT_SINE(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_202HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outsine = 0;
  PyArrayObject *__pyx_v_outleadsine = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("HT_SINE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3110, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_HT_SINE_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(2, 3113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outsine = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_HT_SINE(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outsine->data) + __pyx_v_lookback), (((double *)__pyx_v_outleadsine->data) + __pyx_v_lookback));

  __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(2, 3116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_outsine));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outsine));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outsine));
  __Pyx_INCREF(((PyObject *)__pyx_v_outleadsine));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outleadsine));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outleadsine));
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outsine);
  __Pyx_XDECREF((PyObject *)__pyx_v_outleadsine);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_205HT_TRENDLINE(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_204HT_TRENDLINE[] = " HT_TRENDLINE(real)\n\n    Hilbert Transform - Instantaneous Trendline (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_205HT_TRENDLINE = {"HT_TRENDLINE", (PyCFunction)__pyx_pw_5talib_7_ta_lib_205HT_TRENDLINE, METH_O, __pyx_doc_5talib_7_ta_lib_204HT_TRENDLINE};
static PyObject *__pyx_pw_5talib_7_ta_lib_205HT_TRENDLINE(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("HT_TRENDLINE (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3121, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_204HT_TRENDLINE(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_204HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("HT_TRENDLINE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3140, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDLINE_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(2, 3143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_HT_TRENDLINE(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_207HT_TRENDMODE(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_206HT_TRENDMODE[] = " HT_TRENDMODE(real)\n\n    Hilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_207HT_TRENDMODE = {"HT_TRENDMODE", (PyCFunction)__pyx_pw_5talib_7_ta_lib_207HT_TRENDMODE, METH_O, __pyx_doc_5talib_7_ta_lib_206HT_TRENDMODE};
static PyObject *__pyx_pw_5talib_7_ta_lib_207HT_TRENDMODE(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("HT_TRENDMODE (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3150, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_206HT_TRENDMODE(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_206HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("HT_TRENDMODE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3169, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDMODE_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(2, 3172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_HT_TRENDMODE(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 3174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_209KAMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_208KAMA[] = " KAMA(real[, timeperiod=?])\n\n    Kaufman Adaptive Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_209KAMA = {"KAMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_209KAMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_208KAMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_209KAMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("KAMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "KAMA") < 0)) __PYX_ERR(2, 3179, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3179, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3179, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3179, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_208KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_208KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("KAMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3200, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_KAMA_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_KAMA(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_211LINEARREG(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_210LINEARREG[] = " LINEARREG(real[, timeperiod=?])\n\n    Linear Regression (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_211LINEARREG = {"LINEARREG", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_211LINEARREG, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_210LINEARREG};
static PyObject *__pyx_pw_5talib_7_ta_lib_211LINEARREG(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("LINEARREG (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LINEARREG") < 0)) __PYX_ERR(2, 3210, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3210, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3210, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3210, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_210LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_210LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("LINEARREG", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3231, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_LINEARREG(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_213LINEARREG_ANGLE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_212LINEARREG_ANGLE[] = " LINEARREG_ANGLE(real[, timeperiod=?])\n\n    Linear Regression Angle (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_213LINEARREG_ANGLE = {"LINEARREG_ANGLE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_213LINEARREG_ANGLE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_212LINEARREG_ANGLE};
static PyObject *__pyx_pw_5talib_7_ta_lib_213LINEARREG_ANGLE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("LINEARREG_ANGLE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LINEARREG_ANGLE") < 0)) __PYX_ERR(2, 3241, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3241, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3241, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3241, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_212LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_212LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("LINEARREG_ANGLE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3262, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_LINEARREG_ANGLE(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_215LINEARREG_INTERCEPT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_214LINEARREG_INTERCEPT[] = " LINEARREG_INTERCEPT(real[, timeperiod=?])\n\n    Linear Regression Intercept (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_215LINEARREG_INTERCEPT = {"LINEARREG_INTERCEPT", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_215LINEARREG_INTERCEPT, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_214LINEARREG_INTERCEPT};
static PyObject *__pyx_pw_5talib_7_ta_lib_215LINEARREG_INTERCEPT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LINEARREG_INTERCEPT") < 0)) __PYX_ERR(2, 3272, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3272, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3272, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3272, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_214LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_214LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3291, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3293, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_LINEARREG_INTERCEPT(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_217LINEARREG_SLOPE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_216LINEARREG_SLOPE[] = " LINEARREG_SLOPE(real[, timeperiod=?])\n\n    Linear Regression Slope (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_217LINEARREG_SLOPE = {"LINEARREG_SLOPE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_217LINEARREG_SLOPE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_216LINEARREG_SLOPE};
static PyObject *__pyx_pw_5talib_7_ta_lib_217LINEARREG_SLOPE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("LINEARREG_SLOPE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LINEARREG_SLOPE") < 0)) __PYX_ERR(2, 3303, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3303, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3303, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3303, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_216LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_216LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("LINEARREG_SLOPE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3324, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_LINEARREG_SLOPE(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_219LN(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_218LN[] = " LN(real)\n\n    Vector Log Natural (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_219LN = {"LN", (PyCFunction)__pyx_pw_5talib_7_ta_lib_219LN, METH_O, __pyx_doc_5talib_7_ta_lib_218LN};
static PyObject *__pyx_pw_5talib_7_ta_lib_219LN(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("LN (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3334, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_218LN(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_218LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("LN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3353, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_LN_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(2, 3356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_LN(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.LN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_221LOG10(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_220LOG10[] = " LOG10(real)\n\n    Vector Log10 (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_221LOG10 = {"LOG10", (PyCFunction)__pyx_pw_5talib_7_ta_lib_221LOG10, METH_O, __pyx_doc_5talib_7_ta_lib_220LOG10};
static PyObject *__pyx_pw_5talib_7_ta_lib_221LOG10(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("LOG10 (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3363, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_220LOG10(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_220LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("LOG10", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3382, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_LOG10_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(2, 3385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_LOG10(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_223MA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_222MA[] = " MA(real[, timeperiod=?, matype=?])\n\n    Moving average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_223MA = {"MA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_223MA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_222MA};
static PyObject *__pyx_pw_5talib_7_ta_lib_223MA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_v_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_matype,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matype);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MA") < 0)) __PYX_ERR(2, 3392, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3392, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_matype = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3392, __pyx_L3_error)
    } else {
      __pyx_v_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3392, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3392, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_222MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_222MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3414, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MA(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_225MACD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_224MACD[] = " MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\n    Moving Average Convergence/Divergence (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        slowperiod: 26\n        signalperiod: 9\n    Outputs:\n        macd\n        macdsignal\n        macdhist\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_225MACD = {"MACD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_225MACD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_224MACD};
static PyObject *__pyx_pw_5talib_7_ta_lib_225MACD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_fastperiod;
  int __pyx_v_slowperiod;
  int __pyx_v_signalperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MACD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,&__pyx_n_s_signalperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowperiod);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signalperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MACD") < 0)) __PYX_ERR(2, 3424, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3424, __pyx_L3_error)
    } else {
      __pyx_v_fastperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3424, __pyx_L3_error)
    } else {
      __pyx_v_slowperiod = ((int)-2147483648);
    }
    if (values[3]) {
      __pyx_v_signalperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3424, __pyx_L3_error)
    } else {
      __pyx_v_signalperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3424, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3424, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_224MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_224MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outmacd = 0;
  PyArrayObject *__pyx_v_outmacdsignal = 0;
  PyArrayObject *__pyx_v_outmacdhist = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MACD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3451, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MACD(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outmacd->data) + __pyx_v_lookback), (((double *)__pyx_v_outmacdsignal->data) + __pyx_v_lookback), (((double *)__pyx_v_outmacdhist->data) + __pyx_v_lookback));

  __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(2, 3458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_outmacd));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outmacd));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd));
  __Pyx_INCREF(((PyObject *)__pyx_v_outmacdsignal));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outmacdsignal));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal));
  __Pyx_INCREF(((PyObject *)__pyx_v_outmacdhist));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outmacdhist));
  PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist));
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outmacd);
  __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal);
  __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_227MACDEXT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_226MACDEXT[] = " MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\n    MACD with controllable MA type (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        fastmatype: 0\n        slowperiod: 26\n        slowmatype: 0\n        signalperiod: 9\n        signalmatype: 0\n    Outputs:\n        macd\n        macdsignal\n        macdhist\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_227MACDEXT = {"MACDEXT", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_227MACDEXT, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_226MACDEXT};
static PyObject *__pyx_pw_5talib_7_ta_lib_227MACDEXT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_fastperiod;
  int __pyx_v_fastmatype;
  int __pyx_v_slowperiod;
  int __pyx_v_slowmatype;
  int __pyx_v_signalperiod;
  int __pyx_v_signalmatype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MACDEXT (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_fastmatype,&__pyx_n_s_slowperiod,&__pyx_n_s_slowmatype,&__pyx_n_s_signalperiod,&__pyx_n_s_signalmatype,0};
    PyObject* values[7] = {0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastmatype);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowperiod);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowmatype);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signalperiod);
          if (value) { values[5] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signalmatype);
          if (value) { values[6] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MACDEXT") < 0)) __PYX_ERR(2, 3463, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3463, __pyx_L3_error)
    } else {
      __pyx_v_fastperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_fastmatype = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3463, __pyx_L3_error)
    } else {
      __pyx_v_fastmatype = ((int)0);
    }
    if (values[3]) {
      __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3463, __pyx_L3_error)
    } else {
      __pyx_v_slowperiod = ((int)-2147483648);
    }
    if (values[4]) {
      __pyx_v_slowmatype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3463, __pyx_L3_error)
    } else {
      __pyx_v_slowmatype = ((int)0);
    }
    if (values[5]) {
      __pyx_v_signalperiod = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3463, __pyx_L3_error)
    } else {
      __pyx_v_signalperiod = ((int)-2147483648);
    }
    if (values[6]) {
      __pyx_v_signalmatype = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3463, __pyx_L3_error)
    } else {
      __pyx_v_signalmatype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3463, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3463, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_226MACDEXT(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_226MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outmacd = 0;
  PyArrayObject *__pyx_v_outmacdsignal = 0;
  PyArrayObject *__pyx_v_outmacdhist = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MACDEXT", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3493, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3498, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MACDEXT(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __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_v_outmacd->data) + __pyx_v_lookback), (((double *)__pyx_v_outmacdsignal->data) + __pyx_v_lookback), (((double *)__pyx_v_outmacdhist->data) + __pyx_v_lookback));

  __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(2, 3500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_outmacd));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outmacd));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd));
  __Pyx_INCREF(((PyObject *)__pyx_v_outmacdsignal));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outmacdsignal));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal));
  __Pyx_INCREF(((PyObject *)__pyx_v_outmacdhist));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outmacdhist));
  PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist));
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outmacd);
  __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal);
  __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_229MACDFIX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_228MACDFIX[] = " MACDFIX(real[, signalperiod=?])\n\n    Moving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        signalperiod: 9\n    Outputs:\n        macd\n        macdsignal\n        macdhist\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_229MACDFIX = {"MACDFIX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_229MACDFIX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_228MACDFIX};
static PyObject *__pyx_pw_5talib_7_ta_lib_229MACDFIX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_signalperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MACDFIX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_signalperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signalperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MACDFIX") < 0)) __PYX_ERR(2, 3505, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_signalperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3505, __pyx_L3_error)
    } else {
      __pyx_v_signalperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3505, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3505, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_228MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_228MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outmacd = 0;
  PyArrayObject *__pyx_v_outmacdsignal = 0;
  PyArrayObject *__pyx_v_outmacdhist = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MACDFIX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3528, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3530, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MACDFIX_Lookback(__pyx_v_signalperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MACDFIX(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outmacd->data) + __pyx_v_lookback), (((double *)__pyx_v_outmacdsignal->data) + __pyx_v_lookback), (((double *)__pyx_v_outmacdhist->data) + __pyx_v_lookback));

  __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(2, 3537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3538, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_outmacd));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outmacd));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd));
  __Pyx_INCREF(((PyObject *)__pyx_v_outmacdsignal));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outmacdsignal));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal));
  __Pyx_INCREF(((PyObject *)__pyx_v_outmacdhist));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outmacdhist));
  PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist));
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outmacd);
  __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal);
  __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_231MAMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_230MAMA[] = " MAMA(real[, fastlimit=?, slowlimit=?])\n\n    MESA Adaptive Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastlimit: 0.5\n        slowlimit: 0.05\n    Outputs:\n        mama\n        fama\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_231MAMA = {"MAMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_231MAMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_230MAMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_231MAMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  double __pyx_v_fastlimit;
  double __pyx_v_slowlimit;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MAMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastlimit,&__pyx_n_s_slowlimit,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastlimit);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowlimit);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MAMA") < 0)) __PYX_ERR(2, 3542, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_fastlimit = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 3542, __pyx_L3_error)
    } else {
      __pyx_v_fastlimit = ((double)-4e37);
    }
    if (values[2]) {
      __pyx_v_slowlimit = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 3542, __pyx_L3_error)
    } else {
      __pyx_v_slowlimit = ((double)-4e37);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3542, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3542, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_230MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_230MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outmama = 0;
  PyArrayObject *__pyx_v_outfama = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MAMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3566, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outmama = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3570, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outfama = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MAMA(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outmama->data) + __pyx_v_lookback), (((double *)__pyx_v_outfama->data) + __pyx_v_lookback));

  __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(2, 3572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_outmama));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outmama));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmama));
  __Pyx_INCREF(((PyObject *)__pyx_v_outfama));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outfama));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfama));
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outmama);
  __Pyx_XDECREF((PyObject *)__pyx_v_outfama);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_233MAVP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_232MAVP[] = " MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\n    Moving average with variable period (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n        periods: (any ndarray)\n    Parameters:\n        minperiod: 2\n        maxperiod: 30\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_233MAVP = {"MAVP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_233MAVP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_232MAVP};
static PyObject *__pyx_pw_5talib_7_ta_lib_233MAVP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  PyArrayObject *__pyx_v_periods = 0;
  int __pyx_v_minperiod;
  int __pyx_v_maxperiod;
  int __pyx_v_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MAVP (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_periods,&__pyx_n_s_minperiod,&__pyx_n_s_maxperiod,&__pyx_n_s_matype,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_periods)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, 1); __PYX_ERR(2, 3577, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_minperiod);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_maxperiod);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matype);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MAVP") < 0)) __PYX_ERR(2, 3577, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    __pyx_v_periods = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_minperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3577, __pyx_L3_error)
    } else {
      __pyx_v_minperiod = ((int)-2147483648);
    }
    if (values[3]) {
      __pyx_v_maxperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3577, __pyx_L3_error)
    } else {
      __pyx_v_maxperiod = ((int)-2147483648);
    }
    if (values[4]) {
      __pyx_v_matype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3577, __pyx_L3_error)
    } else {
      __pyx_v_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3577, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3577, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(2, 3577, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_232MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_232MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MAVP", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);
  __Pyx_INCREF((PyObject *)__pyx_v_periods);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_periods, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 3601, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_real->data), ((double *)__pyx_v_periods->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 3602, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MAVP(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (((double *)__pyx_v_periods->data) + __pyx_v_begidx), __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XDECREF((PyObject *)__pyx_v_periods);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_235MAX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_234MAX[] = " MAX(real[, timeperiod=?])\n\n    Highest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_235MAX = {"MAX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_235MAX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_234MAX};
static PyObject *__pyx_pw_5talib_7_ta_lib_235MAX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MAX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MAX") < 0)) __PYX_ERR(2, 3612, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3612, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3612, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3612, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_234MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_234MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MAX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3633, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MAX_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MAX(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_237MAXINDEX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_236MAXINDEX[] = " MAXINDEX(real[, timeperiod=?])\n\n    Index of highest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_237MAXINDEX = {"MAXINDEX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_237MAXINDEX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_236MAXINDEX};
static PyObject *__pyx_pw_5talib_7_ta_lib_237MAXINDEX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MAXINDEX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MAXINDEX") < 0)) __PYX_ERR(2, 3643, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3643, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3643, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3643, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_236MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_236MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  int *__pyx_v_outinteger_data;
  int __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  npy_intp __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MAXINDEX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3664, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MAXINDEX_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 3669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_v_outinteger_data = ((int *)__pyx_v_outinteger->data);

  __pyx_t_3 = __pyx_v_length;
  for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {

    __pyx_t_4 = __pyx_v_i;
    (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx);
  }

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_239MEDPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_238MEDPRICE[] = " MEDPRICE(high, low)\n\n    Median Price (Price Transform)\n\n    Inputs:\n        prices: ['high', 'low']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_239MEDPRICE = {"MEDPRICE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_239MEDPRICE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_238MEDPRICE};
static PyObject *__pyx_pw_5talib_7_ta_lib_239MEDPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MEDPRICE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, 1); __PYX_ERR(2, 3677, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MEDPRICE") < 0)) __PYX_ERR(2, 3677, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 3677, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 3677, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_238MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_238MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MEDPRICE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 3696, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 3697, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MEDPRICE_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(2, 3700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MEDPRICE(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_241MFI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_240MFI[] = " MFI(high, low, close, volume[, timeperiod=?])\n\n    Money Flow Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close', 'volume']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_241MFI = {"MFI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_241MFI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_240MFI};
static PyObject *__pyx_pw_5talib_7_ta_lib_241MFI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  PyArrayObject *__pyx_v_volume = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MFI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_volume,&__pyx_n_s_timeperiod,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, 1); __PYX_ERR(2, 3707, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, 2); __PYX_ERR(2, 3707, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_volume)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, 3); __PYX_ERR(2, 3707, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MFI") < 0)) __PYX_ERR(2, 3707, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    __pyx_v_volume = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3707, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3707, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MFI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 3707, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 3707, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 3707, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(2, 3707, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_240MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_240MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MFI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);
  __Pyx_INCREF((PyObject *)__pyx_v_volume);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3727, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 3730, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data), ((double *)__pyx_v_volume->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 3731, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MFI_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MFI(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (((double *)__pyx_v_volume->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MFI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XDECREF((PyObject *)__pyx_v_volume);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_243MIDPOINT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_242MIDPOINT[] = " MIDPOINT(real[, timeperiod=?])\n\n    MidPoint over period (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_243MIDPOINT = {"MIDPOINT", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_243MIDPOINT, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_242MIDPOINT};
static PyObject *__pyx_pw_5talib_7_ta_lib_243MIDPOINT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MIDPOINT (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MIDPOINT") < 0)) __PYX_ERR(2, 3741, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3741, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3741, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3741, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_242MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_242MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MIDPOINT", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3762, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPOINT_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MIDPOINT(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_245MIDPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_244MIDPRICE[] = " MIDPRICE(high, low[, timeperiod=?])\n\n    Midpoint Price over period (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_245MIDPRICE = {"MIDPRICE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_245MIDPRICE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_244MIDPRICE};
static PyObject *__pyx_pw_5talib_7_ta_lib_245MIDPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MIDPRICE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, 1); __PYX_ERR(2, 3772, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MIDPRICE") < 0)) __PYX_ERR(2, 3772, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3772, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3772, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 3772, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 3772, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_244MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_244MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MIDPRICE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3791, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3792, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 3793, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 3794, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPRICE_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MIDPRICE(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3799, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_247MIN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_246MIN[] = " MIN(real[, timeperiod=?])\n\n    Lowest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_247MIN = {"MIN", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_247MIN, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_246MIN};
static PyObject *__pyx_pw_5talib_7_ta_lib_247MIN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MIN (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MIN") < 0)) __PYX_ERR(2, 3804, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3804, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3804, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MIN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3804, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_246MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_246MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MIN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3825, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MIN_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MIN(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MIN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_249MININDEX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_248MININDEX[] = " MININDEX(real[, timeperiod=?])\n\n    Index of lowest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_249MININDEX = {"MININDEX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_249MININDEX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_248MININDEX};
static PyObject *__pyx_pw_5talib_7_ta_lib_249MININDEX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MININDEX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MININDEX") < 0)) __PYX_ERR(2, 3835, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3835, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3835, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3835, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_248MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_248MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outinteger = 0;
  int *__pyx_v_outinteger_data;
  int __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  npy_intp __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MININDEX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3856, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MININDEX_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MININDEX(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outinteger->data) + __pyx_v_lookback));

  __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(2, 3861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_v_outinteger_data = ((int *)__pyx_v_outinteger->data);

  __pyx_t_3 = __pyx_v_length;
  for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {

    __pyx_t_4 = __pyx_v_i;
    (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx);
  }

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outinteger));
  __pyx_r = ((PyObject *)__pyx_v_outinteger);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outinteger);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_251MINMAX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_250MINMAX[] = " MINMAX(real[, timeperiod=?])\n\n    Lowest and highest values over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        min\n        max\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_251MINMAX = {"MINMAX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_251MINMAX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_250MINMAX};
static PyObject *__pyx_pw_5talib_7_ta_lib_251MINMAX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MINMAX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MINMAX") < 0)) __PYX_ERR(2, 3869, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3869, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3869, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3869, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_250MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_250MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outmin = 0;
  PyArrayObject *__pyx_v_outmax = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MINMAX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3892, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAX_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outmin = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outmax = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MINMAX(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outmin->data) + __pyx_v_lookback), (((double *)__pyx_v_outmax->data) + __pyx_v_lookback));

  __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(2, 3898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3899, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_outmin));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outmin));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmin));
  __Pyx_INCREF(((PyObject *)__pyx_v_outmax));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outmax));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmax));
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outmin);
  __Pyx_XDECREF((PyObject *)__pyx_v_outmax);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_253MINMAXINDEX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_252MINMAXINDEX[] = " MINMAXINDEX(real[, timeperiod=?])\n\n    Indexes of lowest and highest values over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        minidx\n        maxidx\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_253MINMAXINDEX = {"MINMAXINDEX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_253MINMAXINDEX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_252MINMAXINDEX};
static PyObject *__pyx_pw_5talib_7_ta_lib_253MINMAXINDEX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MINMAXINDEX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MINMAXINDEX") < 0)) __PYX_ERR(2, 3903, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3903, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3903, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 3903, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_252MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_252MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outminidx = 0;
  PyArrayObject *__pyx_v_outmaxidx = 0;
  int *__pyx_v_outminidx_data;
  int __pyx_v_i;
  int *__pyx_v_outmaxidx_data;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  npy_intp __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MINMAXINDEX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 3926, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MINMAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_v_outminidx->data) + __pyx_v_lookback), (((int *)__pyx_v_outmaxidx->data) + __pyx_v_lookback));

  __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(2, 3932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_v_outminidx_data = ((int *)__pyx_v_outminidx->data);

  __pyx_t_3 = __pyx_v_length;
  for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {

    __pyx_t_4 = __pyx_v_i;
    (__pyx_v_outminidx_data[__pyx_t_4]) = ((__pyx_v_outminidx_data[__pyx_t_4]) + __pyx_v_begidx);
  }

  __pyx_v_outmaxidx_data = ((int *)__pyx_v_outmaxidx->data);

  __pyx_t_3 = __pyx_v_length;
  for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {

    __pyx_t_4 = __pyx_v_i;
    (__pyx_v_outmaxidx_data[__pyx_t_4]) = ((__pyx_v_outmaxidx_data[__pyx_t_4]) + __pyx_v_begidx);
  }

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_outminidx));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outminidx));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outminidx));
  __Pyx_INCREF(((PyObject *)__pyx_v_outmaxidx));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outmaxidx));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmaxidx));
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outminidx);
  __Pyx_XDECREF((PyObject *)__pyx_v_outmaxidx);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_255MINUS_DI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_254MINUS_DI[] = " MINUS_DI(high, low, close[, timeperiod=?])\n\n    Minus Directional Indicator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_255MINUS_DI = {"MINUS_DI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_255MINUS_DI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_254MINUS_DI};
static PyObject *__pyx_pw_5talib_7_ta_lib_255MINUS_DI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MINUS_DI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, 1); __PYX_ERR(2, 3943, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, 2); __PYX_ERR(2, 3943, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MINUS_DI") < 0)) __PYX_ERR(2, 3943, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3943, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3943, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 3943, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 3943, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 3943, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_254MINUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_254MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MINUS_DI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 3965, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 3966, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DI_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3969, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MINUS_DI(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 3971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_257MINUS_DM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_256MINUS_DM[] = " MINUS_DM(high, low[, timeperiod=?])\n\n    Minus Directional Movement (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_257MINUS_DM = {"MINUS_DM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_257MINUS_DM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_256MINUS_DM};
static PyObject *__pyx_pw_5talib_7_ta_lib_257MINUS_DM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MINUS_DM (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, 1); __PYX_ERR(2, 3976, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MINUS_DM") < 0)) __PYX_ERR(2, 3976, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 3976, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 3976, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 3976, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 3976, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_256MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_256MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MINUS_DM", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 3997, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 3998, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DM_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MINUS_DM(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_259MOM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_258MOM[] = " MOM(real[, timeperiod=?])\n\n    Momentum (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_259MOM = {"MOM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_259MOM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_258MOM};
static PyObject *__pyx_pw_5talib_7_ta_lib_259MOM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MOM (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MOM") < 0)) __PYX_ERR(2, 4008, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4008, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4008, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MOM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4008, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_258MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_258MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MOM", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4029, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MOM_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4032, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MOM(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MOM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_261MULT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_260MULT[] = " MULT(real0, real1)\n\n    Vector Arithmetic Mult (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_261MULT = {"MULT", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_261MULT, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_260MULT};
static PyObject *__pyx_pw_5talib_7_ta_lib_261MULT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real0 = 0;
  PyArrayObject *__pyx_v_real1 = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("MULT (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, 1); __PYX_ERR(2, 4039, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "MULT") < 0)) __PYX_ERR(2, 4039, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_real0 = ((PyArrayObject *)values[0]);
    __pyx_v_real1 = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4039, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.MULT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(2, 4039, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(2, 4039, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_260MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_260MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("MULT", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real0);
  __Pyx_INCREF((PyObject *)__pyx_v_real1);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4057, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4058, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 4059, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_real0->data), ((double *)__pyx_v_real1->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 4060, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_MULT_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(2, 4063, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_MULT(0, __pyx_v_endidx, (((double *)__pyx_v_real0->data) + __pyx_v_begidx), (((double *)__pyx_v_real1->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4065, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.MULT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real0);
  __Pyx_XDECREF((PyObject *)__pyx_v_real1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_263NATR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_262NATR[] = " NATR(high, low, close[, timeperiod=?])\n\n    Normalized Average True Range (Volatility Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_263NATR = {"NATR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_263NATR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_262NATR};
static PyObject *__pyx_pw_5talib_7_ta_lib_263NATR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("NATR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, 1); __PYX_ERR(2, 4070, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, 2); __PYX_ERR(2, 4070, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "NATR") < 0)) __PYX_ERR(2, 4070, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4070, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4070, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.NATR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 4070, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 4070, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 4070, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_262NATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_262NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("NATR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4089, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4090, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4091, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 4092, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 4093, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_NATR_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_NATR(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.NATR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_265OBV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_264OBV[] = " OBV(real, volume)\n\n    On Balance Volume (Volume Indicators)\n\n    Inputs:\n        real: (any ndarray)\n        prices: ['volume']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_265OBV = {"OBV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_265OBV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_264OBV};
static PyObject *__pyx_pw_5talib_7_ta_lib_265OBV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  PyArrayObject *__pyx_v_volume = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("OBV (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_volume,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_volume)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, 1); __PYX_ERR(2, 4103, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "OBV") < 0)) __PYX_ERR(2, 4103, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    __pyx_v_volume = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4103, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.OBV", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4103, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(2, 4103, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_264OBV(__pyx_self, __pyx_v_real, __pyx_v_volume);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_264OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("OBV", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);
  __Pyx_INCREF((PyObject *)__pyx_v_volume);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 4123, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_real->data), ((double *)__pyx_v_volume->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 4124, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_OBV_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(2, 4127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_OBV(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (((double *)__pyx_v_volume->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.OBV", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XDECREF((PyObject *)__pyx_v_volume);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_267PLUS_DI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_266PLUS_DI[] = " PLUS_DI(high, low, close[, timeperiod=?])\n\n    Plus Directional Indicator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_267PLUS_DI = {"PLUS_DI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_267PLUS_DI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_266PLUS_DI};
static PyObject *__pyx_pw_5talib_7_ta_lib_267PLUS_DI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("PLUS_DI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, 1); __PYX_ERR(2, 4134, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, 2); __PYX_ERR(2, 4134, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "PLUS_DI") < 0)) __PYX_ERR(2, 4134, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4134, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4134, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 4134, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 4134, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 4134, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_266PLUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_266PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PLUS_DI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 4156, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 4157, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DI_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_PLUS_DI(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_269PLUS_DM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_268PLUS_DM[] = " PLUS_DM(high, low[, timeperiod=?])\n\n    Plus Directional Movement (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_269PLUS_DM = {"PLUS_DM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_269PLUS_DM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_268PLUS_DM};
static PyObject *__pyx_pw_5talib_7_ta_lib_269PLUS_DM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("PLUS_DM (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, 1); __PYX_ERR(2, 4167, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "PLUS_DM") < 0)) __PYX_ERR(2, 4167, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4167, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4167, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 4167, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 4167, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_268PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_268PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PLUS_DM", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 4188, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 4189, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DM_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_PLUS_DM(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_271PPO(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_270PPO[] = " PPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\n    Percentage Price Oscillator (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        slowperiod: 26\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_271PPO = {"PPO", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_271PPO, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_270PPO};
static PyObject *__pyx_pw_5talib_7_ta_lib_271PPO(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_fastperiod;
  int __pyx_v_slowperiod;
  int __pyx_v_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("PPO (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,&__pyx_n_s_matype,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowperiod);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matype);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "PPO") < 0)) __PYX_ERR(2, 4199, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4199, __pyx_L3_error)
    } else {
      __pyx_v_fastperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4199, __pyx_L3_error)
    } else {
      __pyx_v_slowperiod = ((int)-2147483648);
    }
    if (values[3]) {
      __pyx_v_matype = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4199, __pyx_L3_error)
    } else {
      __pyx_v_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4199, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.PPO", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4199, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_270PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_270PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PPO", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4222, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_PPO(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.PPO", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_273ROC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_272ROC[] = " ROC(real[, timeperiod=?])\n\n    Rate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_273ROC = {"ROC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_273ROC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_272ROC};
static PyObject *__pyx_pw_5talib_7_ta_lib_273ROC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ROC (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ROC") < 0)) __PYX_ERR(2, 4232, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4232, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4232, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.ROC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4232, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_272ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_272ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ROC", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4253, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_ROC_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_ROC(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.ROC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_275ROCP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_274ROCP[] = " ROCP(real[, timeperiod=?])\n\n    Rate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_275ROCP = {"ROCP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_275ROCP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_274ROCP};
static PyObject *__pyx_pw_5talib_7_ta_lib_275ROCP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ROCP (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ROCP") < 0)) __PYX_ERR(2, 4263, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4263, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4263, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4263, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_274ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_274ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ROCP", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4284, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_ROCP_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_ROCP(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_277ROCR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_276ROCR[] = " ROCR(real[, timeperiod=?])\n\n    Rate of change ratio: (real/prevPrice) (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_277ROCR = {"ROCR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_277ROCR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_276ROCR};
static PyObject *__pyx_pw_5talib_7_ta_lib_277ROCR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ROCR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ROCR") < 0)) __PYX_ERR(2, 4294, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4294, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4294, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4294, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_276ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_276ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ROCR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4315, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_ROCR(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_279ROCR100(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_278ROCR100[] = " ROCR100(real[, timeperiod=?])\n\n    Rate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_279ROCR100 = {"ROCR100", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_279ROCR100, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_278ROCR100};
static PyObject *__pyx_pw_5talib_7_ta_lib_279ROCR100(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ROCR100 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ROCR100") < 0)) __PYX_ERR(2, 4325, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4325, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4325, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4325, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_278ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_278ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ROCR100", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4346, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR100_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_ROCR100(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_281RSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_280RSI[] = " RSI(real[, timeperiod=?])\n\n    Relative Strength Index (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_281RSI = {"RSI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_281RSI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_280RSI};
static PyObject *__pyx_pw_5talib_7_ta_lib_281RSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("RSI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "RSI") < 0)) __PYX_ERR(2, 4356, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4356, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4356, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4356, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_280RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_280RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("RSI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4375, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4377, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_RSI_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_RSI(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_283SAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_282SAR[] = " SAR(high, low[, acceleration=?, maximum=?])\n\n    Parabolic SAR (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        acceleration: 0.02\n        maximum: 0.2\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_283SAR = {"SAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_283SAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_282SAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_283SAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  double __pyx_v_acceleration;
  double __pyx_v_maximum;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("SAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_acceleration,&__pyx_n_s_maximum,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, 1); __PYX_ERR(2, 4387, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_acceleration);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_maximum);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "SAR") < 0)) __PYX_ERR(2, 4387, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_acceleration = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 4387, __pyx_L3_error)
    } else {
      __pyx_v_acceleration = ((double)0.02);
    }
    if (values[3]) {
      __pyx_v_maximum = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 4387, __pyx_L3_error)
    } else {
      __pyx_v_maximum = ((double)0.2);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4387, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.SAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 4387, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 4387, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_282SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_282SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("SAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4407, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 4409, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 4410, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_SAR(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.SAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_285SAREXT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_284SAREXT[] = " SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\n    Parabolic SAR - Extended (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        startvalue: 0\n        offsetonreverse: 0\n        accelerationinitlong: 0.02\n        accelerationlong: 0.02\n        accelerationmaxlong: 0.2\n        accelerationinitshort: 0.02\n        accelerationshort: 0.02\n        accelerationmaxshort: 0.2\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_285SAREXT = {"SAREXT", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_285SAREXT, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_284SAREXT};
static PyObject *__pyx_pw_5talib_7_ta_lib_285SAREXT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  double __pyx_v_startvalue;
  double __pyx_v_offsetonreverse;
  double __pyx_v_accelerationinitlong;
  double __pyx_v_accelerationlong;
  double __pyx_v_accelerationmaxlong;
  double __pyx_v_accelerationinitshort;
  double __pyx_v_accelerationshort;
  double __pyx_v_accelerationmaxshort;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("SAREXT (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_startvalue,&__pyx_n_s_offsetonreverse,&__pyx_n_s_accelerationinitlong,&__pyx_n_s_accelerationlong,&__pyx_n_s_accelerationmaxlong,&__pyx_n_s_accelerationinitshort,&__pyx_n_s_accelerationshort,&__pyx_n_s_accelerationmaxshort,0};
    PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, 1); __PYX_ERR(2, 4420, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_startvalue);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_offsetonreverse);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accelerationinitlong);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accelerationlong);
          if (value) { values[5] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accelerationmaxlong);
          if (value) { values[6] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accelerationinitshort);
          if (value) { values[7] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accelerationshort);
          if (value) { values[8] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accelerationmaxshort);
          if (value) { values[9] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "SAREXT") < 0)) __PYX_ERR(2, 4420, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_startvalue = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 4420, __pyx_L3_error)
    } else {
      __pyx_v_startvalue = ((double)-4e37);
    }
    if (values[3]) {
      __pyx_v_offsetonreverse = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 4420, __pyx_L3_error)
    } else {
      __pyx_v_offsetonreverse = ((double)-4e37);
    }
    if (values[4]) {
      __pyx_v_accelerationinitlong = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 4420, __pyx_L3_error)
    } else {
      __pyx_v_accelerationinitlong = ((double)-4e37);
    }
    if (values[5]) {
      __pyx_v_accelerationlong = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 4420, __pyx_L3_error)
    } else {
      __pyx_v_accelerationlong = ((double)-4e37);
    }
    if (values[6]) {
      __pyx_v_accelerationmaxlong = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 4420, __pyx_L3_error)
    } else {
      __pyx_v_accelerationmaxlong = ((double)-4e37);
    }
    if (values[7]) {
      __pyx_v_accelerationinitshort = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 4420, __pyx_L3_error)
    } else {
      __pyx_v_accelerationinitshort = ((double)-4e37);
    }
    if (values[8]) {
      __pyx_v_accelerationshort = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 4420, __pyx_L3_error)
    } else {
      __pyx_v_accelerationshort = ((double)-4e37);
    }
    if (values[9]) {
      __pyx_v_accelerationmaxshort = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 4420, __pyx_L3_error)
    } else {
      __pyx_v_accelerationmaxshort = ((double)-4e37);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4420, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 4420, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 4420, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_284SAREXT(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_284SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("SAREXT", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4446, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 4448, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 4449, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4452, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_SAREXT(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __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_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_287SIN(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_286SIN[] = " SIN(real)\n\n    Vector Trigonometric Sin (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_287SIN = {"SIN", (PyCFunction)__pyx_pw_5talib_7_ta_lib_287SIN, METH_O, __pyx_doc_5talib_7_ta_lib_286SIN};
static PyObject *__pyx_pw_5talib_7_ta_lib_287SIN(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("SIN (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4459, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_286SIN(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_286SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("SIN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4476, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4478, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_SIN_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(2, 4481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_SIN(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.SIN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_289SINH(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_288SINH[] = " SINH(real)\n\n    Vector Trigonometric Sinh (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_289SINH = {"SINH", (PyCFunction)__pyx_pw_5talib_7_ta_lib_289SINH, METH_O, __pyx_doc_5talib_7_ta_lib_288SINH};
static PyObject *__pyx_pw_5talib_7_ta_lib_289SINH(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("SINH (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4488, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_288SINH(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_288SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("SINH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4507, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_SINH_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(2, 4510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_SINH(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.SINH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_291SMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_290SMA[] = " SMA(real[, timeperiod=?])\n\n    Simple Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_291SMA = {"SMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_291SMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_290SMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_291SMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("SMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "SMA") < 0)) __PYX_ERR(2, 4517, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4517, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4517, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4517, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_290SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_290SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("SMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4536, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4538, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_SMA_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_SMA(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_293SQRT(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_292SQRT[] = " SQRT(real)\n\n    Vector Square Root (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_293SQRT = {"SQRT", (PyCFunction)__pyx_pw_5talib_7_ta_lib_293SQRT, METH_O, __pyx_doc_5talib_7_ta_lib_292SQRT};
static PyObject *__pyx_pw_5talib_7_ta_lib_293SQRT(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("SQRT (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4548, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_292SQRT(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_292SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("SQRT", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4567, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_SQRT_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(2, 4570, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_SQRT(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_295STDDEV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_294STDDEV[] = " STDDEV(real[, timeperiod=?, nbdev=?])\n\n    Standard Deviation (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        nbdev: 1\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_295STDDEV = {"STDDEV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_295STDDEV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_294STDDEV};
static PyObject *__pyx_pw_5talib_7_ta_lib_295STDDEV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  double __pyx_v_nbdev;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("STDDEV (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_nbdev,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nbdev);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "STDDEV") < 0)) __PYX_ERR(2, 4577, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4577, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_nbdev = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 4577, __pyx_L3_error)
    } else {
      __pyx_v_nbdev = ((double)-4e37);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4577, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4577, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_294STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_294STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("STDDEV", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4597, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4599, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_STDDEV(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_297STOCH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_296STOCH[] = " STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\n    Stochastic (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        fastk_period: 5\n        slowk_period: 3\n        slowk_matype: 0\n        slowd_period: 3\n        slowd_matype: 0\n    Outputs:\n        slowk\n        slowd\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_297STOCH = {"STOCH", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_297STOCH, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_296STOCH};
static PyObject *__pyx_pw_5talib_7_ta_lib_297STOCH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_fastk_period;
  int __pyx_v_slowk_period;
  int __pyx_v_slowk_matype;
  int __pyx_v_slowd_period;
  int __pyx_v_slowd_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("STOCH (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_fastk_period,&__pyx_n_s_slowk_period,&__pyx_n_s_slowk_matype,&__pyx_n_s_slowd_period,&__pyx_n_s_slowd_matype,0};
    PyObject* values[8] = {0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, 1); __PYX_ERR(2, 4609, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, 2); __PYX_ERR(2, 4609, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastk_period);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowk_period);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowk_matype);
          if (value) { values[5] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowd_period);
          if (value) { values[6] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowd_matype);
          if (value) { values[7] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "STOCH") < 0)) __PYX_ERR(2, 4609, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_fastk_period = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4609, __pyx_L3_error)
    } else {
      __pyx_v_fastk_period = ((int)-2147483648);
    }
    if (values[4]) {
      __pyx_v_slowk_period = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4609, __pyx_L3_error)
    } else {
      __pyx_v_slowk_period = ((int)-2147483648);
    }
    if (values[5]) {
      __pyx_v_slowk_matype = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4609, __pyx_L3_error)
    } else {
      __pyx_v_slowk_matype = ((int)0);
    }
    if (values[6]) {
      __pyx_v_slowd_period = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4609, __pyx_L3_error)
    } else {
      __pyx_v_slowd_period = ((int)-2147483648);
    }
    if (values[7]) {
      __pyx_v_slowd_matype = __Pyx_PyInt_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4609, __pyx_L3_error)
    } else {
      __pyx_v_slowd_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4609, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 4609, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 4609, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 4609, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_296STOCH(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_296STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outslowk = 0;
  PyArrayObject *__pyx_v_outslowd = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("STOCH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 4637, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 4638, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_STOCH(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __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_v_outslowk->data) + __pyx_v_lookback), (((double *)__pyx_v_outslowd->data) + __pyx_v_lookback));

  __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(2, 4644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_outslowk));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outslowk));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outslowk));
  __Pyx_INCREF(((PyObject *)__pyx_v_outslowd));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outslowd));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outslowd));
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outslowk);
  __Pyx_XDECREF((PyObject *)__pyx_v_outslowd);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_299STOCHF(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_298STOCHF[] = " STOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\n    Stochastic Fast (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        fastk_period: 5\n        fastd_period: 3\n        fastd_matype: 0\n    Outputs:\n        fastk\n        fastd\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_299STOCHF = {"STOCHF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_299STOCHF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_298STOCHF};
static PyObject *__pyx_pw_5talib_7_ta_lib_299STOCHF(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_fastk_period;
  int __pyx_v_fastd_period;
  int __pyx_v_fastd_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("STOCHF (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_fastk_period,&__pyx_n_s_fastd_period,&__pyx_n_s_fastd_matype,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, 1); __PYX_ERR(2, 4649, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, 2); __PYX_ERR(2, 4649, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastk_period);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastd_period);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastd_matype);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "STOCHF") < 0)) __PYX_ERR(2, 4649, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_fastk_period = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4649, __pyx_L3_error)
    } else {
      __pyx_v_fastk_period = ((int)-2147483648);
    }
    if (values[4]) {
      __pyx_v_fastd_period = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4649, __pyx_L3_error)
    } else {
      __pyx_v_fastd_period = ((int)-2147483648);
    }
    if (values[5]) {
      __pyx_v_fastd_matype = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4649, __pyx_L3_error)
    } else {
      __pyx_v_fastd_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4649, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 4649, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 4649, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 4649, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_298STOCHF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_298STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outfastk = 0;
  PyArrayObject *__pyx_v_outfastd = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("STOCHF", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4672, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4673, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 4675, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 4676, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4680, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_STOCHF(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outfastk->data) + __pyx_v_lookback), (((double *)__pyx_v_outfastd->data) + __pyx_v_lookback));

  __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(2, 4682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_outfastk));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outfastk));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk));
  __Pyx_INCREF(((PyObject *)__pyx_v_outfastd));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outfastd));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd));
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outfastk);
  __Pyx_XDECREF((PyObject *)__pyx_v_outfastd);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_301STOCHRSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_300STOCHRSI[] = " STOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\n    Stochastic Relative Strength Index (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n        fastk_period: 5\n        fastd_period: 3\n        fastd_matype: 0\n    Outputs:\n        fastk\n        fastd\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_301STOCHRSI = {"STOCHRSI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_301STOCHRSI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_300STOCHRSI};
static PyObject *__pyx_pw_5talib_7_ta_lib_301STOCHRSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_v_fastk_period;
  int __pyx_v_fastd_period;
  int __pyx_v_fastd_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("STOCHRSI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_fastk_period,&__pyx_n_s_fastd_period,&__pyx_n_s_fastd_matype,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastk_period);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastd_period);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastd_matype);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "STOCHRSI") < 0)) __PYX_ERR(2, 4687, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4687, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_fastk_period = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4687, __pyx_L3_error)
    } else {
      __pyx_v_fastk_period = ((int)-2147483648);
    }
    if (values[3]) {
      __pyx_v_fastd_period = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4687, __pyx_L3_error)
    } else {
      __pyx_v_fastd_period = ((int)-2147483648);
    }
    if (values[4]) {
      __pyx_v_fastd_matype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4687, __pyx_L3_error)
    } else {
      __pyx_v_fastd_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4687, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4687, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_300STOCHRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_300STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outfastk = 0;
  PyArrayObject *__pyx_v_outfastd = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("STOCHRSI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4713, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4716, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_STOCHRSI(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __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_v_outfastk->data) + __pyx_v_lookback), (((double *)__pyx_v_outfastd->data) + __pyx_v_lookback));

  __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(2, 4719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_outfastk));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outfastk));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk));
  __Pyx_INCREF(((PyObject *)__pyx_v_outfastd));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outfastd));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd));
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outfastk);
  __Pyx_XDECREF((PyObject *)__pyx_v_outfastd);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_303SUB(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_302SUB[] = " SUB(real0, real1)\n\n    Vector Arithmetic Substraction (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_303SUB = {"SUB", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_303SUB, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_302SUB};
static PyObject *__pyx_pw_5talib_7_ta_lib_303SUB(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real0 = 0;
  PyArrayObject *__pyx_v_real1 = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("SUB (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, 1); __PYX_ERR(2, 4724, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "SUB") < 0)) __PYX_ERR(2, 4724, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_real0 = ((PyArrayObject *)values[0]);
    __pyx_v_real1 = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4724, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(2, 4724, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(2, 4724, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_302SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_302SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("SUB", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real0);
  __Pyx_INCREF((PyObject *)__pyx_v_real1);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 4744, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_v_real0->data), ((double *)__pyx_v_real1->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 4745, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_SUB_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(2, 4748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_SUB(0, __pyx_v_endidx, (((double *)__pyx_v_real0->data) + __pyx_v_begidx), (((double *)__pyx_v_real1->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real0);
  __Pyx_XDECREF((PyObject *)__pyx_v_real1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_305SUM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_304SUM[] = " SUM(real[, timeperiod=?])\n\n    Summation (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_305SUM = {"SUM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_305SUM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_304SUM};
static PyObject *__pyx_pw_5talib_7_ta_lib_305SUM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("SUM (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "SUM") < 0)) __PYX_ERR(2, 4755, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4755, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4755, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4755, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_304SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_304SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("SUM", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4776, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_SUM_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4779, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_SUM(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_307T3(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_306T3[] = " T3(real[, timeperiod=?, vfactor=?])\n\n    Triple Exponential Moving Average (T3) (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        vfactor: 0.7\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_307T3 = {"T3", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_307T3, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_306T3};
static PyObject *__pyx_pw_5talib_7_ta_lib_307T3(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  double __pyx_v_vfactor;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("T3 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_vfactor,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vfactor);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "T3") < 0)) __PYX_ERR(2, 4786, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4786, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_vfactor = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 4786, __pyx_L3_error)
    } else {
      __pyx_v_vfactor = ((double)-4e37);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4786, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.T3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4786, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_306T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_306T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("T3", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4808, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4811, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_T3(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.T3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_309TAN(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_308TAN[] = " TAN(real)\n\n    Vector Trigonometric Tan (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_309TAN = {"TAN", (PyCFunction)__pyx_pw_5talib_7_ta_lib_309TAN, METH_O, __pyx_doc_5talib_7_ta_lib_308TAN};
static PyObject *__pyx_pw_5talib_7_ta_lib_309TAN(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("TAN (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4818, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_308TAN(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_308TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("TAN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4837, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_TAN_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(2, 4840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_TAN(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.TAN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_311TANH(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_310TANH[] = " TANH(real)\n\n    Vector Trigonometric Tanh (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_311TANH = {"TANH", (PyCFunction)__pyx_pw_5talib_7_ta_lib_311TANH, METH_O, __pyx_doc_5talib_7_ta_lib_310TANH};
static PyObject *__pyx_pw_5talib_7_ta_lib_311TANH(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("TANH (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4847, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_310TANH(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_310TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("TANH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4864, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4866, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_TANH_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(2, 4869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_TANH(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4871, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.TANH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_313TEMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_312TEMA[] = " TEMA(real[, timeperiod=?])\n\n    Triple Exponential Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_313TEMA = {"TEMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_313TEMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_312TEMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_313TEMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("TEMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "TEMA") < 0)) __PYX_ERR(2, 4876, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4876, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4876, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4876, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_312TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_312TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("TEMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4897, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_TEMA_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4900, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_TEMA(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_315TRANGE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_314TRANGE[] = " TRANGE(high, low, close)\n\n    True Range (Volatility Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_315TRANGE = {"TRANGE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_315TRANGE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_314TRANGE};
static PyObject *__pyx_pw_5talib_7_ta_lib_315TRANGE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("TRANGE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, 1); __PYX_ERR(2, 4907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, 2); __PYX_ERR(2, 4907, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "TRANGE") < 0)) __PYX_ERR(2, 4907, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4907, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 4907, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 4907, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 4907, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_314TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_314TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("TRANGE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 4927, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 4928, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_TRANGE_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(2, 4931, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_TRANGE(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_317TRIMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_316TRIMA[] = " TRIMA(real[, timeperiod=?])\n\n    Triangular Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_317TRIMA = {"TRIMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_317TRIMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_316TRIMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_317TRIMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("TRIMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "TRIMA") < 0)) __PYX_ERR(2, 4938, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4938, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4938, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4938, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_316TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_316TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("TRIMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4957, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4959, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_TRIMA_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_TRIMA(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_319TRIX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_318TRIX[] = " TRIX(real[, timeperiod=?])\n\n    1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_319TRIX = {"TRIX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_319TRIX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_318TRIX};
static PyObject *__pyx_pw_5talib_7_ta_lib_319TRIX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("TRIX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "TRIX") < 0)) __PYX_ERR(2, 4969, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 4969, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4969, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 4969, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_318TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_318TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("TRIX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 4990, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_TRIX_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_TRIX(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 4995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_321TSF(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_320TSF[] = " TSF(real[, timeperiod=?])\n\n    Time Series Forecast (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_321TSF = {"TSF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_321TSF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_320TSF};
static PyObject *__pyx_pw_5talib_7_ta_lib_321TSF(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("TSF (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "TSF") < 0)) __PYX_ERR(2, 5000, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 5000, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 5000, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.TSF", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 5000, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_320TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_320TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("TSF", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 5021, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_TSF_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_TSF(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 5026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.TSF", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_323TYPPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_322TYPPRICE[] = " TYPPRICE(high, low, close)\n\n    Typical Price (Price Transform)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_323TYPPRICE = {"TYPPRICE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_323TYPPRICE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_322TYPPRICE};
static PyObject *__pyx_pw_5talib_7_ta_lib_323TYPPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("TYPPRICE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, 1); __PYX_ERR(2, 5031, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, 2); __PYX_ERR(2, 5031, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "TYPPRICE") < 0)) __PYX_ERR(2, 5031, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 5031, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 5031, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 5031, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 5031, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_322TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_322TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("TYPPRICE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5048, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5050, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 5051, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 5052, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_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(2, 5055, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_TYPPRICE(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 5057, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_325ULTOSC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_324ULTOSC[] = " ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\n    Ultimate Oscillator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod1: 7\n        timeperiod2: 14\n        timeperiod3: 28\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_325ULTOSC = {"ULTOSC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_325ULTOSC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_324ULTOSC};
static PyObject *__pyx_pw_5talib_7_ta_lib_325ULTOSC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod1;
  int __pyx_v_timeperiod2;
  int __pyx_v_timeperiod3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ULTOSC (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod1,&__pyx_n_s_timeperiod2,&__pyx_n_s_timeperiod3,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, 1); __PYX_ERR(2, 5062, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, 2); __PYX_ERR(2, 5062, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod1);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod2);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod3);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ULTOSC") < 0)) __PYX_ERR(2, 5062, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod1 = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 5062, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod1 = ((int)-2147483648);
    }
    if (values[4]) {
      __pyx_v_timeperiod2 = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 5062, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod2 = ((int)-2147483648);
    }
    if (values[5]) {
      __pyx_v_timeperiod3 = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 5062, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod3 = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 5062, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 5062, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 5062, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 5062, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_324ULTOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_324ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ULTOSC", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5084, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 5086, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 5087, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5090, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_ULTOSC(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 5092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_327VAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_326VAR[] = " VAR(real[, timeperiod=?, nbdev=?])\n\n    Variance (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        nbdev: 1\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_327VAR = {"VAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_327VAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_326VAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_327VAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  double __pyx_v_nbdev;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("VAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_nbdev,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nbdev);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "VAR") < 0)) __PYX_ERR(2, 5097, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 5097, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_nbdev = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 5097, __pyx_L3_error)
    } else {
      __pyx_v_nbdev = ((double)-4e37);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 5097, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 5097, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_326VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_326VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("VAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 5119, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_VAR(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 5124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_329WCLPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_328WCLPRICE[] = " WCLPRICE(high, low, close)\n\n    Weighted Close Price (Price Transform)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_329WCLPRICE = {"WCLPRICE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_329WCLPRICE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_328WCLPRICE};
static PyObject *__pyx_pw_5talib_7_ta_lib_329WCLPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("WCLPRICE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, 1); __PYX_ERR(2, 5129, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, 2); __PYX_ERR(2, 5129, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "WCLPRICE") < 0)) __PYX_ERR(2, 5129, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 5129, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 5129, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 5129, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 5129, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_328WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_328WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WCLPRICE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 5149, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 5150, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_WCLPRICE_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(2, 5153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_WCLPRICE(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 5155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_331WILLR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_330WILLR[] = " WILLR(high, low, close[, timeperiod=?])\n\n    Williams' %R (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_331WILLR = {"WILLR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_331WILLR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_330WILLR};
static PyObject *__pyx_pw_5talib_7_ta_lib_331WILLR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("WILLR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, 1); __PYX_ERR(2, 5160, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, 2); __PYX_ERR(2, 5160, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "WILLR") < 0)) __PYX_ERR(2, 5160, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 5160, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 5160, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(2, 5160, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(2, 5160, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(2, 5160, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_330WILLR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_330WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  npy_int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WILLR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(2, 5182, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_v_high->data), ((double *)__pyx_v_low->data), ((double *)__pyx_v_close->data)); if (unlikely(__pyx_t_3 == ((npy_int)-1))) __PYX_ERR(2, 5183, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_3;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_WILLR(0, __pyx_v_endidx, (((double *)__pyx_v_high->data) + __pyx_v_begidx), (((double *)__pyx_v_low->data) + __pyx_v_begidx), (((double *)__pyx_v_close->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 5188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_333WMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_332WMA[] = " WMA(real[, timeperiod=?])\n\n    Weighted Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_333WMA = {"WMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_333WMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_332WMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_333WMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("WMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "WMA") < 0)) __PYX_ERR(2, 5193, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 5193, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 5193, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.WMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(2, 5193, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_332WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_332WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  int __pyx_v_begidx;
  int __pyx_v_endidx;
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  PyArrayObject *__pyx_v_outreal = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_v_real->data)); if (unlikely(__pyx_t_2 == ((npy_int)-1))) __PYX_ERR(2, 5214, __pyx_L1_error)
  __pyx_v_begidx = __pyx_t_2;

  __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1);

  __pyx_v_lookback = (__pyx_v_begidx + TA_WMA_Lookback(__pyx_v_timeperiod));

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_v_retCode = TA_WMA(0, __pyx_v_endidx, (((double *)__pyx_v_real->data) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_v_outreal->data) + __pyx_v_lookback));

  __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(2, 5219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_outreal));
  __pyx_r = ((PyObject *)__pyx_v_outreal);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.WMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_outreal);
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_335str2bytes(PyObject *__pyx_self, PyObject *__pyx_v_s); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_335str2bytes = {"str2bytes", (PyCFunction)__pyx_pw_5talib_7_ta_lib_335str2bytes, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_335str2bytes(PyObject *__pyx_self, PyObject *__pyx_v_s) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_334str2bytes(__pyx_self, ((PyObject *)__pyx_v_s));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_334str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("str2bytes", 0);

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_s);
  __Pyx_GIVEREF(__pyx_v_s);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_s);
  __Pyx_INCREF(__pyx_n_s_ascii);
  __Pyx_GIVEREF(__pyx_n_s_ascii);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_ascii);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyBytes_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_337bytes2str(PyObject *__pyx_self, PyObject *__pyx_v_b); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_337bytes2str = {"bytes2str", (PyCFunction)__pyx_pw_5talib_7_ta_lib_337bytes2str, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_337bytes2str(PyObject *__pyx_self, PyObject *__pyx_v_b) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_336bytes2str(__pyx_self, ((PyObject *)__pyx_v_b));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_336bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bytes2str", 0);

  __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, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_n_s_ascii) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_n_s_ascii);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_339str2bytes(PyObject *__pyx_self, PyObject *__pyx_v_s); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_339str2bytes = {"str2bytes", (PyCFunction)__pyx_pw_5talib_7_ta_lib_339str2bytes, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_339str2bytes(PyObject *__pyx_self, PyObject *__pyx_v_s) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_338str2bytes(__pyx_self, ((PyObject *)__pyx_v_s));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_338str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("str2bytes", 0);

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_s);
  __pyx_r = __pyx_v_s;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_341bytes2str(PyObject *__pyx_self, PyObject *__pyx_v_b); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_341bytes2str = {"bytes2str", (PyCFunction)__pyx_pw_5talib_7_ta_lib_341bytes2str, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_341bytes2str(PyObject *__pyx_self, PyObject *__pyx_v_b) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_340bytes2str(__pyx_self, ((PyObject *)__pyx_v_b));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_340bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("bytes2str", 0);

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_b);
  __pyx_r = __pyx_v_b;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_1__init__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_function_name = 0;
  PyObject *__pyx_v_func_object = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
  __Pyx_GOTREF(__pyx_v_kwargs);
  if (PyTuple_GET_SIZE(__pyx_args) > 3) {
    __pyx_v_args = PyTuple_GetSlice(__pyx_args, 3, PyTuple_GET_SIZE(__pyx_args));
    if (unlikely(!__pyx_v_args)) {
      __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
      __Pyx_RefNannyFinishContext();
      return NULL;
    }
    __Pyx_GOTREF(__pyx_v_args);
  } else {
    __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
  }
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_function_name,&__pyx_n_s_func_object,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        default:
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function_name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, 1); __PYX_ERR(1, 99, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_func_object)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, 2); __PYX_ERR(1, 99, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t used_pos_args = (pos_args < 3) ? pos_args : 3;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__init__") < 0)) __PYX_ERR(1, 99, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) < 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_function_name = values[1];
    __pyx_v_func_object = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 99, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
  __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
  __Pyx_AddTraceback("talib._ta_lib.Function.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function___init__(__pyx_self, __pyx_v_self, __pyx_v_function_name, __pyx_v_func_object, __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_func_object, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_function_name, __pyx_n_s_upper); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__name, __pyx_t_1) < 0) __PYX_ERR(1, 101, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 102, __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, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_str2bytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 103, __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, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__name, __pyx_t_1) < 0) __PYX_ERR(1, 103, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__info, Py_None) < 0) __PYX_ERR(1, 104, __pyx_L1_error)

  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays, __pyx_t_1) < 0) __PYX_ERR(1, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_names, __pyx_t_1) < 0) __PYX_ERR(1, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs, __pyx_t_1) < 0) __PYX_ERR(1, 109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs, __pyx_t_1) < 0) __PYX_ERR(1, 110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs_valid, Py_False) < 0) __PYX_ERR(1, 111, __pyx_L1_error)

  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__initialize_function_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_function_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_func_object, __pyx_v_func_object) < 0) __PYX_ERR(1, 116, __pyx_L1_error)


  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("talib._ta_lib.Function.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__initialize_function_info(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_3__initialize_function_info = {"__initialize_function_info", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_3__initialize_function_info, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__initialize_function_info(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__initialize_function_info (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_2__initialize_function_info(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__initialize_function_info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_info = NULL;
  PyObject *__pyx_v_input_name = NULL;
  PyObject *__pyx_v_param_name = NULL;
  PyObject *__pyx_v_output_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__initialize_function_info", 0);

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ta_getFuncInfo); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 120, __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, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__info, __pyx_t_1) < 0) __PYX_ERR(1, 120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_pop); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_n_s_num_inputs) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s_num_inputs);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 123, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 123, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 123, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_6(__pyx_t_1);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 123, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3);
    __pyx_t_3 = 0;

    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ta_getInputParameterInfo); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__name); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_v_i};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 124, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_v_i};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 124, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    {
      __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 124, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_4);
      __Pyx_INCREF(__pyx_v_i);
      __Pyx_GIVEREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_i);
      __pyx_t_4 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 124, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_3);
    __pyx_t_3 = 0;

    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_3);
    __pyx_t_3 = 0;

    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_n_s_price_series); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 126, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_10 = (__pyx_t_3 == Py_None);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_11 = (__pyx_t_10 != 0);
    if (__pyx_t_11) {

      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_INPUT_PRICE_SERIES_DEFAULTS); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 127, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 127, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(PyObject_SetItem(__pyx_v_info, __pyx_n_s_price_series, __pyx_t_2) < 0)) __PYX_ERR(1, 127, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    }

    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_input_name, __pyx_v_info) < 0)) __PYX_ERR(1, 128, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_s_input_names, __pyx_t_1) < 0)) __PYX_ERR(1, 129, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_pop); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_n_s_num_opt_inputs) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s_num_opt_inputs);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 132, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 132, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 132, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_6(__pyx_t_1);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 132, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3);
    __pyx_t_3 = 0;

    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ta_getOptInputParameterInfo); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__name); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_4 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_9, __pyx_v_i};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 133, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_9, __pyx_v_i};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 133, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_9);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_9);
      __Pyx_INCREF(__pyx_v_i);
      __Pyx_GIVEREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_v_i);
      __pyx_t_9 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_3);
    __pyx_t_3 = 0;

    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_3);
    __pyx_t_3 = 0;

    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_param_name, __pyx_v_info) < 0)) __PYX_ERR(1, 135, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_s_parameters, __pyx_t_1) < 0)) __PYX_ERR(1, 136, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_s_output_flags, __pyx_t_1) < 0)) __PYX_ERR(1, 139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_pop); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_n_s_num_outputs) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_n_s_num_outputs);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_xrange, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 140, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 140, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 140, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 140, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 140, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 140, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_6(__pyx_t_1);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 140, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2);
    __pyx_t_2 = 0;

    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ta_getOutputParameterInfo); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__name); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_v_i};
      __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 141, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_v_i};
      __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 141, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 141, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__pyx_t_9) {
        __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9); __pyx_t_9 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_8, __pyx_t_7);
      __Pyx_INCREF(__pyx_v_i);
      __Pyx_GIVEREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_v_i);
      __pyx_t_7 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 141, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_2);
    __pyx_t_2 = 0;

    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 142, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_output_name, __pyx_t_2);
    __pyx_t_2 = 0;

    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_n_s_flags); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_s_output_flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_output_name, __pyx_t_2) < 0)) __PYX_ERR(1, 143, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_output_name, Py_None) < 0)) __PYX_ERR(1, 144, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_output_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_s_output_names, __pyx_t_1) < 0)) __PYX_ERR(1, 145, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;


  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("talib._ta_lib.Function.__initialize_function_info", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_info);
  __Pyx_XDECREF(__pyx_v_input_name);
  __Pyx_XDECREF(__pyx_v_param_name);
  __Pyx_XDECREF(__pyx_v_output_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_4info[] = "\n        Returns a copy of the function's info dict.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_5info = {"info", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_5info, METH_O, __pyx_doc_5talib_7_ta_lib_8Function_4info};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("info (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_4info(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("info", 0);

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_copy); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.Function.info", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_6function_flags[] = "\n        Returns any function flags defined for this indicator function.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_7function_flags = {"function_flags", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_7function_flags, METH_O, __pyx_doc_5talib_7_ta_lib_8Function_6function_flags};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("function_flags (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_6function_flags(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("function_flags", 0);

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_s_function_flags); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib.Function.function_flags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_8output_flags[] = "\n        Returns the flags for each output for this indicator function.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_9output_flags = {"output_flags", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_9output_flags, METH_O, __pyx_doc_5talib_7_ta_lib_8Function_8output_flags};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("output_flags (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_8output_flags(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("output_flags", 0);

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_s_output_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_copy); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.Function.output_flags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_10get_input_names[] = "\n        Returns the dict of input price series names that specifies which\n        of the ndarrays in input_arrays will be used to calculate the function.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names = {"get_input_names", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names, METH_O, __pyx_doc_5talib_7_ta_lib_8Function_10get_input_names};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_input_names (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_ret = NULL;
  PyObject *__pyx_v_input_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_input_names", 0);

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_ret = __pyx_t_1;
  __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 174, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 174, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 174, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 174, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 174, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 174, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1);
    __pyx_t_1 = 0;

    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 175, __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, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_s_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(PyObject_SetItem(__pyx_v_ret, __pyx_v_input_name, __pyx_t_1) < 0)) __PYX_ERR(1, 175, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ret);
  __pyx_r = __pyx_v_ret;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.Function.get_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XDECREF(__pyx_v_input_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_12set_input_names[] = "\n        Sets the input price series names to use.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names = {"set_input_names", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_12set_input_names};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_input_names = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_input_names (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_input_names,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_input_names)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, 1); __PYX_ERR(1, 178, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_input_names") < 0)) __PYX_ERR(1, 178, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_input_names = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 178, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(__pyx_self, __pyx_v_self, __pyx_v_input_names);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_names) {
  PyObject *__pyx_v_input_name = NULL;
  PyObject *__pyx_v_price_series = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_input_names", 0);

  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_input_names, __pyx_n_s_items); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 182, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 182, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 182, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 182, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 182, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 182, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 182, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(1, 182, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      #else
      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 182, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 182, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 182, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
      index = 0; __pyx_t_3 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_6);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(1, 182, __pyx_L1_error)
      __pyx_t_8 = NULL;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_unpacking_done;
      __pyx_L5_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_8 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(1, 182, __pyx_L1_error)
      __pyx_L6_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_3);
    __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_6);
    __pyx_t_6 = 0;

    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 183, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 183, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_s_price_series, __pyx_v_price_series) < 0)) __PYX_ERR(1, 183, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 184, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_s_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 184, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_input_name, __pyx_v_price_series) < 0)) __PYX_ERR(1, 184, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs_valid, Py_False) < 0) __PYX_ERR(1, 185, __pyx_L1_error)


  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_input_name);
  __Pyx_XDECREF(__pyx_v_price_series);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays[] = "\n        Returns a copy of the dict of input arrays in use.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays = {"get_input_arrays", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays, METH_O, __pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_input_arrays (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_input_arrays", 0);

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = (__pyx_t_2 != Py_None);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_1 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }

  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyObject_IsInstance(__pyx_t_2, __pyx_t_5); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 194, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;

  if (__pyx_t_1) {

    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_clone); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

  }

  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_copy); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("talib._ta_lib.Function.get_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays[] = "\n        Sets the dict of input_arrays to use. Returns True/False for\n        subclasses:\n\n        If input_arrays is a dict with the keys open, high, low, close and\n        volume, it is assigned as the input_array to use and this function\n        returns True, returning False otherwise. If you implement your own\n        data type and wish to subclass Function, you should wrap this function\n        with an if-statement:\n\n        class CustomFunction(Function):\n            def __init__(self, function_name):\n                Function.__init__(self, function_name)\n\n            def set_input_arrays(self, input_data):\n                if Function.set_input_arrays(self, input_data):\n                    return True\n                elif isinstance(input_data, some_module.CustomDataType):\n                    input_arrays = Function.get_input_arrays(self)\n                    # convert input_data to input_arrays and then call the super\n                    Function.set_input_arrays(self, input_arrays)\n                    return True\n                return False\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays = {"set_input_arrays", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_input_arrays = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_input_arrays (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_input_arrays,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_input_arrays)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, 1); __PYX_ERR(1, 199, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_input_arrays") < 0)) __PYX_ERR(1, 199, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_input_arrays = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 199, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(__pyx_self, __pyx_v_self, __pyx_v_input_arrays);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) {
  PyObject *__pyx_v_missing_keys = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_missing = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_input_arrays", 0);

  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 224, __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, 224, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_missing_keys = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_price_series_na); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 226, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 226, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 226, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 226, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 226, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 226, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_7(__pyx_t_4);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(1, 226, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1);
      __pyx_t_1 = 0;

      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 227, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = (__pyx_t_1 != Py_None);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_8 = (__pyx_t_2 != 0);
      if (__pyx_t_8) {
      } else {
        __pyx_t_3 = __pyx_t_8;
        goto __pyx_L7_bool_binop_done;
      }

      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 228, __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, 228, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_t_8 != 0);
      __pyx_t_3 = __pyx_t_2;
      __pyx_L7_bool_binop_done:;

      if (__pyx_t_3) {

        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_input_arrays, __pyx_n_s_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 229, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_1, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 229, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 229, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1);
        __pyx_t_1 = 0;

        goto __pyx_L6;
      }

      /*else*/ {
        __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_input_arrays, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 231, __pyx_L1_error)
        __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 231, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1);
        __pyx_t_1 = 0;
      }
      __pyx_L6:;

      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_missing); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 232, __pyx_L1_error)
      if (__pyx_t_3) {

        __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_missing_keys, __pyx_v_key); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 233, __pyx_L1_error)

      }

    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    __pyx_t_6 = PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(1, 234, __pyx_L1_error)
    __pyx_t_3 = ((__pyx_t_6 == 0) != 0);
    if (likely(__pyx_t_3)) {

      if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays, __pyx_v_input_arrays) < 0) __PYX_ERR(1, 235, __pyx_L1_error)

      if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs_valid, Py_False) < 0) __PYX_ERR(1, 236, __pyx_L1_error)

      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_True);
      __pyx_r = Py_True;
      goto __pyx_L0;

    }

    /*else*/ {

      __pyx_t_6 = PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(1, 240, __pyx_L1_error)
      if (((__pyx_t_6 > 1) != 0)) {
        __Pyx_INCREF(__pyx_n_s_s);
        __pyx_t_4 = __pyx_n_s_s;
      } else {
        __Pyx_INCREF(__pyx_kp_s__5);
        __pyx_t_4 = __pyx_kp_s__5;
      }

      __pyx_t_1 = __Pyx_PyString_Join(__pyx_kp_s__6, __pyx_v_missing_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 242, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);

      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 240, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
      __pyx_t_4 = 0;
      __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_input_arrays_parameter_missing_r, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 240, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_5, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __PYX_ERR(1, 239, __pyx_L1_error)
    }

  }

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(Py_False);
  __pyx_r = Py_False;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_missing_keys);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_missing);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_18get_parameters[] = "\n        Returns the function's optional parameters and their default values.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters = {"get_parameters", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters, METH_O, __pyx_doc_5talib_7_ta_lib_8Function_18get_parameters};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_parameters (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_ret = NULL;
  PyObject *__pyx_v_opt_input = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_parameters", 0);

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_ret = __pyx_t_1;
  __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 252, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 252, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 252, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 252, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 252, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 252, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 252, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1);
    __pyx_t_1 = 0;

    __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, 253, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_v_opt_input) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_opt_input);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 253, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(PyObject_SetItem(__pyx_v_ret, __pyx_v_opt_input, __pyx_t_1) < 0)) __PYX_ERR(1, 253, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ret);
  __pyx_r = __pyx_v_ret;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("talib._ta_lib.Function.get_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XDECREF(__pyx_v_opt_input);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_20set_parameters[] = "\n        Sets the function parameter values.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters = {"set_parameters", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_20set_parameters};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_parameters = 0;
  PyObject *__pyx_v_kwargs = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_parameters (wrapper)", 0);
  __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
  __Pyx_GOTREF(__pyx_v_kwargs);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_parameters,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)((PyObject *)Py_None));
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameters);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "set_parameters") < 0)) __PYX_ERR(1, 256, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_parameters = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_parameters", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 256, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
  __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(__pyx_self, __pyx_v_self, __pyx_v_parameters, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parameters, PyObject *__pyx_v_kwargs) {
  PyObject *__pyx_v_param = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *(*__pyx_t_9)(PyObject *);
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_parameters", 0);
  __Pyx_INCREF(__pyx_v_parameters);

  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_parameters); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 260, __pyx_L1_error)
  if (!__pyx_t_2) {
  } else {
    __Pyx_INCREF(__pyx_v_parameters);
    __pyx_t_1 = __pyx_v_parameters;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_1 = __pyx_t_3;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_L3_bool_binop_done:;
  __Pyx_DECREF_SET(__pyx_v_parameters, __pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parameters, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_kwargs) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_kwargs);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parameters, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 262, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 262, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 262, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 262, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 262, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 262, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_6(__pyx_t_3);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 262, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(1, 262, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_7);
      #else
      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 262, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 262, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 262, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
      index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(1, 262, __pyx_L1_error)
      __pyx_t_9 = NULL;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L8_unpacking_done;
      __pyx_L7_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(1, 262, __pyx_L1_error)
      __pyx_L8_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_7);
    __pyx_t_7 = 0;

    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__check_opt_input_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = NULL;
    __pyx_t_10 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_10 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_param, __pyx_v_value};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 263, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_param, __pyx_v_value};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 263, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 263, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_v_param);
      __Pyx_GIVEREF(__pyx_v_param);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_10, __pyx_v_param);
      __Pyx_INCREF(__pyx_v_value);
      __Pyx_GIVEREF(__pyx_v_value);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_10, __pyx_v_value);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 263, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 263, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_2) {

      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 264, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_param); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 264, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_s_value, __pyx_v_value) < 0)) __PYX_ERR(1, 264, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    }

  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs_valid, Py_False) < 0) __PYX_ERR(1, 265, __pyx_L1_error)

  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_parameters); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_s_parameters, __pyx_t_3) < 0)) __PYX_ERR(1, 266, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;


  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_param);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_parameters);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_22set_function_args[] = "\n        optional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args = {"set_function_args", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_22set_function_args};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_function_args (wrapper)", 0);
  __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
  __Pyx_GOTREF(__pyx_v_kwargs);
  if (PyTuple_GET_SIZE(__pyx_args) > 1) {
    __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args));
    if (unlikely(!__pyx_v_args)) {
      __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
      __Pyx_RefNannyFinishContext();
      return NULL;
    }
    __Pyx_GOTREF(__pyx_v_args);
  } else {
    __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
  }
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        default:
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "set_function_args") < 0)) __PYX_ERR(1, 270, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_function_args", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 270, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
  __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
  __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) {
  int __pyx_v_update_info;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_skip_first = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_param_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *(*__pyx_t_12)(PyObject *);
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_function_args", 0);

  __pyx_v_update_info = 0;

  __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_kwargs, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_5;
  __pyx_t_5 = 0;
  while (1) {
    __pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, NULL, NULL, __pyx_t_4);
    if (unlikely(__pyx_t_6 == 0)) break;
    if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(1, 276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5);
    __pyx_t_5 = 0;

    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 277, __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, 277, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_8 = (__pyx_t_7 != 0);
    if (__pyx_t_8) {

      __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 278, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5);
      __pyx_t_5 = 0;

      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__check_opt_input_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_9)) {
        PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_key, __pyx_v_value};
        __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 279, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_GOTREF(__pyx_t_5);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
        PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_key, __pyx_v_value};
        __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 279, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_GOTREF(__pyx_t_5);
      } else
      #endif
      {
        __pyx_t_11 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 279, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        if (__pyx_t_10) {
          __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10); __pyx_t_10 = NULL;
        }
        __Pyx_INCREF(__pyx_v_key);
        __Pyx_GIVEREF(__pyx_v_key);
        PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_6, __pyx_v_key);
        __Pyx_INCREF(__pyx_v_value);
        __Pyx_GIVEREF(__pyx_v_value);
        PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_6, __pyx_v_value);
        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 279, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(1, 279, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_8) {

        __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 280, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 280, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 280, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_n_s_value, __pyx_t_5) < 0)) __PYX_ERR(1, 280, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

        __pyx_v_update_info = 1;

      }

      goto __pyx_L5;
    }

    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_names); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(1, 282, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = (__pyx_t_8 != 0);
    if (__pyx_t_7) {

      __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 283, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_names); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 283, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 283, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_n_s_price_series, __pyx_t_5) < 0)) __PYX_ERR(1, 283, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 284, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 284, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_11 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_s_input_names); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 284, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_v_key, __pyx_t_5) < 0)) __PYX_ERR(1, 284, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    }
    __pyx_L5:;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_7 = (PyTuple_GET_SIZE(__pyx_v_args) != 0);
  if (__pyx_t_7) {

    __Pyx_INCREF(__pyx_int_0);
    __pyx_v_skip_first = __pyx_int_0;

    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_input_arrays); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_11 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_9, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_11);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 288, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_7) {

      __Pyx_INCREF(__pyx_int_1);
      __Pyx_DECREF_SET(__pyx_v_skip_first, __pyx_int_1);

    }

    __pyx_t_3 = PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 290, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_v_skip_first, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 290, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 290, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_7) {

      __Pyx_INCREF(__pyx_int_0);
      __pyx_t_5 = __pyx_int_0;
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_11 = __pyx_t_1; __Pyx_INCREF(__pyx_t_11); __pyx_t_3 = 0;
        __pyx_t_12 = NULL;
      } else {
        __pyx_t_3 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 291, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 291, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_12)) {
          if (likely(PyList_CheckExact(__pyx_t_11))) {
            if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_11)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 291, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_11, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 291, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 291, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_11, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 291, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_12(__pyx_t_11);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(1, 291, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_1);
        __pyx_t_1 = 0;
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
        __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_t_5, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 291, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5);
        __pyx_t_5 = __pyx_t_1;
        __pyx_t_1 = 0;

        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_v_skip_first); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 292, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_1);
        __pyx_t_1 = 0;

        __pyx_t_2 = PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 293, __pyx_L1_error)
        __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 293, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = PyObject_RichCompare(__pyx_v_i, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 293, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 293, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (__pyx_t_7) {

          __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_args, __pyx_v_i); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 294, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_9);
          __pyx_t_9 = 0;

          __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, 295, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_10 = NULL;
          __pyx_t_4 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_10)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_10);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
              __pyx_t_4 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_1)) {
            PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_param_name, __pyx_v_value};
            __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 295, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_GOTREF(__pyx_t_9);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
            PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_param_name, __pyx_v_value};
            __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 295, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_GOTREF(__pyx_t_9);
          } else
          #endif
          {
            __pyx_t_13 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 295, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            if (__pyx_t_10) {
              __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_10); __pyx_t_10 = NULL;
            }
            __Pyx_INCREF(__pyx_v_param_name);
            __Pyx_GIVEREF(__pyx_v_param_name);
            PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_4, __pyx_v_param_name);
            __Pyx_INCREF(__pyx_v_value);
            __Pyx_GIVEREF(__pyx_v_value);
            PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_4, __pyx_v_value);
            __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_13, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 295, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 295, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (__pyx_t_7) {

            __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 296, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_param_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 296, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_v_value) < 0)) __PYX_ERR(1, 296, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

            __pyx_v_update_info = 1;

          }

        }

      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    }

  }

  __pyx_t_8 = (PyTuple_GET_SIZE(__pyx_v_args) != 0);
  if (!__pyx_t_8) {
  } else {
    __pyx_t_7 = __pyx_t_8;
    goto __pyx_L15_bool_binop_done;
  }
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(1, 299, __pyx_L1_error)
  __pyx_t_7 = __pyx_t_8;
  __pyx_L15_bool_binop_done:;
  if (__pyx_t_7) {

    __pyx_t_7 = (__pyx_v_update_info != 0);
    if (__pyx_t_7) {

      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_parameters); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_n_s_parameters, __pyx_t_5) < 0)) __PYX_ERR(1, 301, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    }

    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs_valid, Py_False) < 0) __PYX_ERR(1, 302, __pyx_L1_error)

  }


  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_skip_first);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_param_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_24lookback[] = "\n        Returns the lookback window size for the function with the parameter\n        values that are currently set.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_25lookback = {"lookback", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_25lookback, METH_O, __pyx_doc_5talib_7_ta_lib_8Function_24lookback};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookback (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_24lookback(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  TA_ParamHolder *__pyx_v_holder;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_opt_input = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_type_ = NULL;
  int __pyx_v_lookback;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookback", 0);

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 311, __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, 311, __pyx_L1_error)
  __pyx_v_holder = __pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_1 = __pyx_int_0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 312, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 312, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 312, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 312, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 312, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 312, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_6(__pyx_t_4);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 312, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_3);
    __pyx_t_3 = 0;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);
    __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 312, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;

    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__get_opt_input_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_opt_input) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_opt_input);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_3);
    __pyx_t_3 = 0;

    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_opt_input); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_s_type_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF_SET(__pyx_v_type_, __pyx_t_3);
    __pyx_t_3 = 0;

    __pyx_t_3 = __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 315, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(1, 315, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (!__pyx_t_10) {
    } else {
      __pyx_t_9 = __pyx_t_10;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_7 = __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 315, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(1, 315, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_9 = __pyx_t_10;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_9) {

      __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 316, __pyx_L1_error)
      __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 316, __pyx_L1_error)
      (void)(__pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(__pyx_v_holder, __pyx_t_11, __pyx_t_12));

      goto __pyx_L5;
    }

    __pyx_t_3 = __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 317, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 317, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(1, 317, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (!__pyx_t_10) {
    } else {
      __pyx_t_9 = __pyx_t_10;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_7 = __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 317, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 317, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(1, 317, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_9 = __pyx_t_10;
    __pyx_L8_bool_binop_done:;
    if (__pyx_t_9) {

      __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 318, __pyx_L1_error)
      __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 318, __pyx_L1_error)
      (void)(__pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(__pyx_v_holder, __pyx_t_12, __pyx_t_11));

    }
    __pyx_L5:;

  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_v_lookback = __pyx_f_5talib_7_ta_lib___ta_getLookback(__pyx_v_holder);

  (void)(__pyx_f_5talib_7_ta_lib___ta_paramHolderFree(__pyx_v_holder));

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_lookback); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("talib._ta_lib.Function.lookback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_opt_input);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_type_);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_26output_names[] = "\n        Returns a list of the output names returned by this function.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_27output_names = {"output_names", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_27output_names, METH_O, __pyx_doc_5talib_7_ta_lib_8Function_26output_names};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("output_names (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_26output_names(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_ret = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("output_names", 0);

  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_ret = __pyx_t_1;
  __pyx_t_1 = 0;

  __pyx_t_4 = PyList_Check(__pyx_v_ret); 
  __pyx_t_5 = ((!(__pyx_t_4 != 0)) != 0);
  if (__pyx_t_5) {

    __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 331, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1);
    __pyx_t_1 = 0;

  }

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ret);
  __pyx_r = __pyx_v_ret;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.Function.output_names", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_28outputs[] = "\n        Returns the TA function values for the currently set input_arrays and\n        parameters. Returned values are a ndarray if there is only one output\n        or a list of ndarrays for more than one output.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_29outputs = {"outputs", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_29outputs, METH_O, __pyx_doc_5talib_7_ta_lib_8Function_28outputs};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outputs (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_28outputs(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_ret = NULL;
  PyObject *__pyx_v_index = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("outputs", 0);

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs_valid); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 341, __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, 341, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {

    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__call_function); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  }

  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 343, __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, 343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_ret = __pyx_t_1;
  __pyx_t_1 = 0;

  __pyx_t_3 = PyList_Check(__pyx_v_ret); 
  __pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0);
  if (__pyx_t_2) {

    __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 345, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1);
    __pyx_t_1 = 0;

  }

  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = (__pyx_t_1 != Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = (__pyx_t_3 != 0);
  if (__pyx_t_6) {
  } else {
    __pyx_t_2 = __pyx_t_6;
    goto __pyx_L6_bool_binop_done;
  }

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 347, __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, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyObject_IsInstance(__pyx_t_1, __pyx_t_5); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 347, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_3 = (__pyx_t_6 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L6_bool_binop_done:;

  if (__pyx_t_2) {

    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 348, __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, 348, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_index = __pyx_t_1;
    __pyx_t_1 = 0;

    __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 349, __pyx_L1_error)
    __pyx_t_2 = ((__pyx_t_7 == 1) != 0);
    if (__pyx_t_2) {

      __Pyx_XDECREF(__pyx_r);
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PANDAS_SERIES); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 350, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 350, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 350, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 350, __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, 350, __pyx_L1_error)
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 350, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_r = __pyx_t_8;
      __pyx_t_8 = 0;
      goto __pyx_L0;

    }

    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 352, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_numpy); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 352, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_column_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 352, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_v_ret) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_ret);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 352, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 352, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
      __pyx_t_5 = 0;

      __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 353, __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, 353, __pyx_L1_error)

      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_output_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 354, __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, 353, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 352, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;
    }

  }

  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = (__pyx_t_4 != Py_None);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = (__pyx_t_3 != 0);
  if (__pyx_t_6) {
  } else {
    __pyx_t_2 = __pyx_t_6;
    goto __pyx_L9_bool_binop_done;
  }

  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 356, __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, 356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyObject_IsInstance(__pyx_t_4, __pyx_t_5); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 356, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_3 = (__pyx_t_6 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L9_bool_binop_done:;

  if (__pyx_t_2) {

    __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 357, __pyx_L1_error)
    __pyx_t_2 = ((__pyx_t_7 == 1) != 0);
    if (__pyx_t_2) {

      __Pyx_XDECREF(__pyx_r);
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_POLARS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 358, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 358, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 358, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_r = __pyx_t_5;
      __pyx_t_5 = 0;
      goto __pyx_L0;

    }

    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 360, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_numpy); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 360, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_column_stack); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 360, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_1)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_1, __pyx_v_ret) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_ret);
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 360, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 360, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4);
      __pyx_t_4 = 0;

      __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 361, __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, 361, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_columns, __pyx_t_1) < 0) __PYX_ERR(1, 361, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 360, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;
    }

  }

  /*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, 363, __pyx_L1_error)
    if (((__pyx_t_7 == 1) != 0)) {
      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 363, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __pyx_t_4;
      __pyx_t_4 = 0;
    } else {
      __Pyx_INCREF(__pyx_v_ret);
      __pyx_t_1 = __pyx_v_ret;
    }
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("talib._ta_lib.Function.outputs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XDECREF(__pyx_v_index);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_30run[] = "\n        run([input_arrays=None])\n\n        This is a shortcut to the outputs property that also allows setting\n        the input_arrays dict.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_31run = {"run", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_31run, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_30run};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_input_arrays = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("run (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_input_arrays,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)((PyObject *)Py_None));
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_input_arrays);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "run") < 0)) __PYX_ERR(1, 365, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_input_arrays = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("run", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 365, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.Function.run", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_30run(__pyx_self, __pyx_v_self, __pyx_v_input_arrays);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("run", 0);

  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_input_arrays); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 372, __pyx_L1_error)
  if (__pyx_t_1) {

    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_input_arrays) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_input_arrays);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  }

  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__call_function); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __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, 375, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("talib._ta_lib.Function.run", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_32__call__[] = "\n        func_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs])\n\n        This is a shortcut to the outputs property that also allows setting\n        the input_arrays dict and function parameters.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_33__call__ = {"__call__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_33__call__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_32__call__};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
  __Pyx_GOTREF(__pyx_v_kwargs);
  if (PyTuple_GET_SIZE(__pyx_args) > 1) {
    __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args));
    if (unlikely(!__pyx_v_args)) {
      __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
      __Pyx_RefNannyFinishContext();
      return NULL;
    }
    __Pyx_GOTREF(__pyx_v_args);
  } else {
    __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
  }
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        default:
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__call__") < 0)) __PYX_ERR(1, 377, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 377, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
  __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
  __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_32__call__(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) {
  PyObject *__pyx_v_opt_input_values = NULL;
  PyObject *__pyx_v_price_series_name_values = NULL;
  PyObject *__pyx_v_input_arrays = NULL;
  PyObject *__pyx_v_input_price_series_names = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_msg = NULL;
  PyObject *__pyx_v_no_existing_input_arrays = NULL;
  PyObject *__pyx_v_param_name = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_input_name = NULL;
  PyObject *__pyx_v_n = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  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)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 0);
  __Pyx_INCREF(__pyx_v_args);

  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 386, __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, 386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 386, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 386, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 386, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 386, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 386, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 386, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_6(__pyx_t_4);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 386, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_2);
    __pyx_t_2 = 0;

    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 385, __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, 385, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_s_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 385, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 385, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_param_name);
    __Pyx_GIVEREF(__pyx_v_param_name);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_param_name);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
    __pyx_t_2 = 0;
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(1, 385, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_opt_input_values = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 388, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 388, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 388, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 388, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 388, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 388, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_6(__pyx_t_3);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 388, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_4);
    __pyx_t_4 = 0;

    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 387, __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, 387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_s_price_series); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_n);
    __Pyx_GIVEREF(__pyx_v_n);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_n);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
    __pyx_t_4 = 0;
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(1, 387, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_price_series_name_values = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = PySequence_List(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_input_arrays = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  __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, 393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_input_price_series_names = __pyx_t_1;
  __pyx_t_1 = 0;

  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(1, 394, __pyx_L1_error)
  if (__pyx_t_8) {
  } else {
    __pyx_t_7 = __pyx_t_8;
    goto __pyx_L8_bool_binop_done;
  }
  __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, 394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = PyObject_IsInstance(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 394, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_9 = ((!(__pyx_t_8 != 0)) != 0);
  __pyx_t_7 = __pyx_t_9;
  __pyx_L8_bool_binop_done:;
  if (__pyx_t_7) {

    __Pyx_INCREF(__pyx_int_0);
    __pyx_t_3 = __pyx_int_0;
    if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) {
      __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 395, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_6)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 395, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 395, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 395, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 395, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_6(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(1, 395, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_2);
      __pyx_t_2 = 0;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3);
      __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3);
      __pyx_t_3 = __pyx_t_2;
      __pyx_t_2 = 0;

      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 396, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_7 = PyObject_IsInstance(__pyx_v_arg, __pyx_t_2); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(1, 396, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_9 = ((!(__pyx_t_7 != 0)) != 0);
      if (__pyx_t_9) {

        goto __pyx_L11_break;

      }

      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
        __Pyx_XGOTREF(__pyx_t_10);
        __Pyx_XGOTREF(__pyx_t_11);
        __Pyx_XGOTREF(__pyx_t_12);
        /*try:*/ {

          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_input_price_series_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 400, __pyx_L13_error)
          __Pyx_GOTREF(__pyx_t_2);
          if (unlikely(PyDict_SetItem(__pyx_v_input_arrays, __pyx_t_2, __pyx_v_arg) < 0)) __PYX_ERR(1, 400, __pyx_L13_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        }
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        goto __pyx_L20_try_end;
        __pyx_L13_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

        __pyx_t_13 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IndexError);
        if (__pyx_t_13) {
          __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_14) < 0) __PYX_ERR(1, 401, __pyx_L15_except_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_GOTREF(__pyx_t_14);

          __pyx_t_15 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(1, 403, __pyx_L15_except_error)
          __pyx_t_16 = PyInt_FromSsize_t(__pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 403, __pyx_L15_except_error)
          __Pyx_GOTREF(__pyx_t_16);

          __pyx_t_17 = __Pyx_PyString_Join(__pyx_kp_s__6, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 404, __pyx_L15_except_error)
          __Pyx_GOTREF(__pyx_t_17);

          __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 403, __pyx_L15_except_error)
          __Pyx_GOTREF(__pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_16);
          PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_16);
          __Pyx_GIVEREF(__pyx_t_17);
          PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_17);
          __pyx_t_16 = 0;
          __pyx_t_17 = 0;

          __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, 402, __pyx_L15_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;

          __pyx_t_17 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_v_msg); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 405, __pyx_L15_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, 405, __pyx_L15_except_error)
        }
        goto __pyx_L15_except_error;
        __pyx_L15_except_error:;

        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
        goto __pyx_L1_error;
        __pyx_L20_try_end:;
      }

    }
    __pyx_L11_break:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  }

  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 407, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = (__pyx_t_3 != Py_None);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_8 = (__pyx_t_7 != 0);
  if (__pyx_t_8) {
  } else {
    __pyx_t_9 = __pyx_t_8;
    goto __pyx_L24_bool_binop_done;
  }

  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 408, __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, 408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 408, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = (__pyx_t_8 != 0);
  __pyx_t_9 = __pyx_t_7;
  __pyx_L24_bool_binop_done:;

  if (__pyx_t_9) {

    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 409, __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, 409, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_no_existing_input_arrays = __pyx_t_3;
    __pyx_t_3 = 0;

    goto __pyx_L23;
  }

  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = (__pyx_t_3 != Py_None);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_8 = (__pyx_t_7 != 0);
  if (__pyx_t_8) {
  } else {
    __pyx_t_9 = __pyx_t_8;
    goto __pyx_L26_bool_binop_done;
  }

  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 411, __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, 411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 411, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = (__pyx_t_8 != 0);
  __pyx_t_9 = __pyx_t_7;
  __pyx_L26_bool_binop_done:;

  if (__pyx_t_9) {

    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 412, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_is_empty); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 412, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && 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_14);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_14, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_14);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 412, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_v_no_existing_input_arrays = __pyx_t_1;
    __pyx_t_1 = 0;

    goto __pyx_L23;
  }

  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 414, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(1, 414, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyBool_FromLong((!((!(!__pyx_t_9)) != 0))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 414, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_no_existing_input_arrays = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L23:;

  __pyx_t_5 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 416, __pyx_L1_error)
  __pyx_t_15 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(1, 416, __pyx_L1_error)
  __pyx_t_9 = ((__pyx_t_5 == __pyx_t_15) != 0);
  if (__pyx_t_9) {

    __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_input_arrays); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && 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_14);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_14, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_3, __pyx_v_input_arrays) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_input_arrays);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    __pyx_t_15 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(1, 418, __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, 418, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1);
    __pyx_t_1 = 0;

    goto __pyx_L28;
  }

  __pyx_t_15 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(1, 419, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_15 != 0);
  if (!__pyx_t_7) {
  } else {
    __pyx_t_9 = __pyx_t_7;
    goto __pyx_L29_bool_binop_done;
  }
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_no_existing_input_arrays); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 419, __pyx_L1_error)
  if (__pyx_t_7) {
  } else {
    __pyx_t_9 = __pyx_t_7;
    goto __pyx_L29_bool_binop_done;
  }

  __pyx_t_15 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(1, 420, __pyx_L1_error)
  __pyx_t_7 = ((!(__pyx_t_15 != 0)) != 0);
  if (!__pyx_t_7) {
  } else {
    __pyx_t_9 = __pyx_t_7;
    goto __pyx_L29_bool_binop_done;
  }
  __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, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_7 = PyObject_IsInstance(__pyx_t_1, __pyx_t_14); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(1, 420, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_8 = ((!(__pyx_t_7 != 0)) != 0);
  __pyx_t_9 = __pyx_t_8;
  __pyx_L29_bool_binop_done:;

  if (unlikely(__pyx_t_9)) {

    __pyx_t_15 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(1, 422, __pyx_L1_error)
    __pyx_t_14 = PyInt_FromSsize_t(__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 422, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);

    __pyx_t_1 = __Pyx_PyString_Join(__pyx_kp_s__6, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 423, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);

    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 422, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_14);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_14);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
    __pyx_t_14 = 0;
    __pyx_t_1 = 0;

    __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, 421, __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;

    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_v_msg); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 424, __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, 424, __pyx_L1_error)

  }
  __pyx_L28:;

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_function_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 426, __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, 426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_14 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 426, __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, 426, __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_14); __pyx_t_14 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__call_function); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && 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_14);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_14, function);
    }
  }
  __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __pyx_t_4 = __pyx_v_opt_input_values; __Pyx_INCREF(__pyx_t_4); __pyx_t_15 = 0;
  for (;;) {
    if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_4)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __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, 430, __pyx_L1_error)
    #else
    __pyx_t_14 = PySequence_ITEM(__pyx_t_4, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 430, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    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);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(1, 430, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_1);
      #else
      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 430, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 430, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_2 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 430, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_19 = Py_TYPE(__pyx_t_2)->tp_iternext;
      index = 0; __pyx_t_3 = __pyx_t_19(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L35_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 1; __pyx_t_1 = __pyx_t_19(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L35_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_19(__pyx_t_2), 2) < 0) __PYX_ERR(1, 430, __pyx_L1_error)
      __pyx_t_19 = NULL;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L36_unpacking_done;
      __pyx_L35_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_19 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(1, 430, __pyx_L1_error)
      __pyx_L36_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_3);
    __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;

    __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 431, __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, 431, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __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, 431, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_parameters); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_s_parameters, __pyx_t_4) < 0)) __PYX_ERR(1, 432, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __pyx_t_4 = __pyx_v_price_series_name_values; __Pyx_INCREF(__pyx_t_4); __pyx_t_15 = 0;
  for (;;) {
    if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_4)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __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, 435, __pyx_L1_error)
    #else
    __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 435, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(1, 435, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_14 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_14 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_3);
      #else
      __pyx_t_14 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 435, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 435, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 435, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_19 = Py_TYPE(__pyx_t_2)->tp_iternext;
      index = 0; __pyx_t_14 = __pyx_t_19(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L39_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_L39_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_19(__pyx_t_2), 2) < 0) __PYX_ERR(1, 435, __pyx_L1_error)
      __pyx_t_19 = NULL;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L40_unpacking_done;
      __pyx_L39_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_19 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(1, 435, __pyx_L1_error)
      __pyx_L40_unpacking_done:;
    }
    __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;

    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 436, __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, 436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_s_price_series, __pyx_v_value) < 0)) __PYX_ERR(1, 436, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__info); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 437, __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, 437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_input_name, __pyx_v_value) < 0)) __PYX_ERR(1, 437, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __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, 439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_opt_input_values);
  __Pyx_XDECREF(__pyx_v_price_series_name_values);
  __Pyx_XDECREF(__pyx_v_input_arrays);
  __Pyx_XDECREF(__pyx_v_input_price_series_names);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_msg);
  __Pyx_XDECREF(__pyx_v_no_existing_input_arrays);
  __Pyx_XDECREF(__pyx_v_param_name);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_input_name);
  __Pyx_XDECREF(__pyx_v_n);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names = {"__input_price_series_names", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__input_price_series_names (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_input_price_series_names = NULL;
  PyObject *__pyx_v_input_name = NULL;
  PyObject *__pyx_v_price_series = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__input_price_series_names", 0);

  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_input_price_series_names = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 444, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 444, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 444, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 444, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 444, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 444, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 444, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1);
    __pyx_t_1 = 0;

    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 445, __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, 445, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_s_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 445, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_1);
    __pyx_t_1 = 0;

    __pyx_t_6 = PyList_Check(__pyx_v_price_series); 
    __pyx_t_7 = (__pyx_t_6 != 0);
    if (__pyx_t_7) {

      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_8 = 0;
        __pyx_t_9 = NULL;
      } else {
        __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 447, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 447, __pyx_L1_error)
      }
      for (;;) {
        if (likely(!__pyx_t_9)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 447, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 447, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 447, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 447, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_9(__pyx_t_1);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(1, 447, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5);
        __pyx_t_5 = 0;

        __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_name); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(1, 448, __pyx_L1_error)

      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      goto __pyx_L5;
    }

    /*else*/ {
      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_price_series); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(1, 450, __pyx_L1_error)
    }
    __pyx_L5:;

  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_input_price_series_names);
  __pyx_r = __pyx_v_input_price_series_names;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("talib._ta_lib.Function.__input_price_series_names", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_input_price_series_names);
  __Pyx_XDECREF(__pyx_v_input_name);
  __Pyx_XDECREF(__pyx_v_price_series);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_37__call_function = {"__call_function", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_37__call_function, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call_function (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_36__call_function(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_input_price_series_names = NULL;
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_v_price_series = NULL;
  PyObject *__pyx_v_series = NULL;
  PyObject *__pyx_v_opt_input = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_results = NULL;
  PyObject *__pyx_v_keys = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_output = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call_function", 0);

  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_price_series_na); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_input_price_series_names = __pyx_t_1;
  __pyx_t_1 = 0;

  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  if (likely(PyList_CheckExact(__pyx_v_input_price_series_names)) || PyTuple_CheckExact(__pyx_v_input_price_series_names)) {
    __pyx_t_1 = __pyx_v_input_price_series_names; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 458, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 458, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 458, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 458, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 458, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 458, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_5(__pyx_t_1);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 458, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_2);
    __pyx_t_2 = 0;

    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_arrays); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 459, __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, 459, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF_SET(__pyx_v_series, __pyx_t_3);
    __pyx_t_3 = 0;

    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_PANDAS_SERIES); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 460, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = (__pyx_t_3 != Py_None);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_8 = (__pyx_t_7 != 0);
    if (__pyx_t_8) {
    } else {
      __pyx_t_6 = __pyx_t_8;
      goto __pyx_L6_bool_binop_done;
    }

    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_PANDAS_SERIES); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 461, __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, 461, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = (__pyx_t_8 != 0);
    __pyx_t_6 = __pyx_t_7;
    __pyx_L6_bool_binop_done:;

    if (__pyx_t_6) {

      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_series, __pyx_n_s_values); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 462, __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, 462, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
        }
      }
      __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_2, ((PyObject *)(&PyFloat_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_9, ((PyObject *)(&PyFloat_Type)));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 462, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_3);
      __pyx_t_3 = 0;

      goto __pyx_L5;
    }

    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_POLARS_SERIES); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 463, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = (__pyx_t_3 != Py_None);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_8 = (__pyx_t_7 != 0);
    if (__pyx_t_8) {
    } else {
      __pyx_t_6 = __pyx_t_8;
      goto __pyx_L8_bool_binop_done;
    }

    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_POLARS_SERIES); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 464, __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, 464, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = (__pyx_t_8 != 0);
    __pyx_t_6 = __pyx_t_7;
    __pyx_L8_bool_binop_done:;

    if (__pyx_t_6) {

      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_series, __pyx_n_s_to_numpy); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 465, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_10 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_9 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 465, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_astype); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 465, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_3 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_9, ((PyObject *)(&PyFloat_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)(&PyFloat_Type)));
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 465, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_3);
      __pyx_t_3 = 0;

    }
    __pyx_L5:;

    __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_series); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(1, 466, __pyx_L1_error)

  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 467, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 467, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 467, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 467, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 467, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 467, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 467, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1);
    __pyx_t_1 = 0;

    __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, 468, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_9, __pyx_v_opt_input) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_opt_input);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 468, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;

    __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_value); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(1, 469, __pyx_L1_error)

  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_func_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_results = __pyx_t_2;
  __pyx_t_2 = 0;

  __pyx_t_6 = __Pyx_TypeCheck(__pyx_v_results, __pyx_ptype_5numpy_ndarray); 
  __pyx_t_7 = (__pyx_t_6 != 0);
  if (__pyx_t_7) {

    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 474, __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, 474, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 474, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_keys = __pyx_t_2;
    __pyx_t_2 = 0;

    __pyx_t_7 = PyList_Check(__pyx_v_keys); 
    __pyx_t_6 = ((!(__pyx_t_7 != 0)) != 0);
    if (__pyx_t_6) {

      __pyx_t_2 = PySequence_List(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 476, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_2);
      __pyx_t_2 = 0;

    }

    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 477, __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, 477, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_t_3, __pyx_v_results) < 0)) __PYX_ERR(1, 477, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    goto __pyx_L12;
  }

  /*else*/ {
    __Pyx_INCREF(__pyx_int_0);
    __pyx_t_3 = __pyx_int_0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
      __pyx_t_5 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 479, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 479, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_5)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 479, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 479, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 479, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 479, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_5(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(1, 479, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_2);
      __pyx_t_2 = 0;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3);
      __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 479, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3);
      __pyx_t_3 = __pyx_t_2;
      __pyx_t_2 = 0;

      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_results, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 480, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 480, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_output, __pyx_t_2) < 0)) __PYX_ERR(1, 480, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L12:;

  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__outputs_valid, Py_True) < 0) __PYX_ERR(1, 481, __pyx_L1_error)


  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("talib._ta_lib.Function.__call_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_input_price_series_names);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_price_series);
  __Pyx_XDECREF(__pyx_v_series);
  __Pyx_XDECREF(__pyx_v_opt_input);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_results);
  __Pyx_XDECREF(__pyx_v_keys);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_output);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value = {"__check_opt_input_value", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_input_name = 0;
  PyObject *__pyx_v_value = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__check_opt_input_value (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_input_name,&__pyx_n_s_value,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_input_name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, 1); __PYX_ERR(1, 483, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, 2); __PYX_ERR(1, 483, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__check_opt_input_value") < 0)) __PYX_ERR(1, 483, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_input_name = values[1];
    __pyx_v_value = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 483, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.Function.__check_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name, __pyx_v_value);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name, PyObject *__pyx_v_value) {
  PyObject *__pyx_v_type_ = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__check_opt_input_value", 0);

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 484, __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, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_s_type_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_type_ = __pyx_t_1;
  __pyx_t_1 = 0;

  __Pyx_INCREF(__pyx_v_type_);
  __pyx_t_1 = __pyx_v_type_;
  __pyx_t_2 = __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 485, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 485, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (!__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 485, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 485, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_5 = (__pyx_t_3 != 0);
  if (__pyx_t_5) {

    __Pyx_INCREF(((PyObject *)(&PyInt_Type)));
    __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyInt_Type)));

    goto __pyx_L3;
  }

  __Pyx_INCREF(__pyx_v_type_);
  __pyx_t_1 = __pyx_v_type_;
  __pyx_t_2 = __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 487, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 487, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (!__pyx_t_3) {
  } else {
    __pyx_t_5 = __pyx_t_3;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 487, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 487, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __pyx_t_3;
  __pyx_L6_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_5 != 0);
  if (__pyx_t_3) {

    __Pyx_INCREF(((PyObject *)(&PyFloat_Type)));
    __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyFloat_Type)));

  }
  __pyx_L3:;

  __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_v_type_); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 490, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_3 != 0);
  if (__pyx_t_5) {

    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    goto __pyx_L0;

  }

  __pyx_t_5 = (__pyx_v_value != Py_None);
  __pyx_t_3 = (__pyx_t_5 != 0);
  if (unlikely(__pyx_t_3)) {

    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 495, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 495, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 495, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_input_name);
    __Pyx_GIVEREF(__pyx_v_input_name);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_input_name);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;

    __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_parameter_value_for_s_ex, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 494, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 493, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(1, 493, __pyx_L1_error)

  }

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(Py_False);
  __pyx_r = Py_False;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("talib._ta_lib.Function.__check_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_type_);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value[] = "\n        Returns the user-set value if there is one, otherwise the default.\n        ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value = {"__get_opt_input_value", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_input_name = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get_opt_input_value (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_input_name,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_input_name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, 1); __PYX_ERR(1, 498, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__get_opt_input_value") < 0)) __PYX_ERR(1, 498, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_input_name = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 498, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.Function.__get_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name) {
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get_opt_input_value", 0);

  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 502, __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, 502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_value = __pyx_t_1;
  __pyx_t_1 = 0;

  __pyx_t_3 = (__pyx_v_value == Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 504, __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, 504, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_s_default_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 504, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;

  }

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_value);
  __pyx_r = __pyx_v_value;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib.Function.__get_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_43__repr__ = {"__repr__", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_43__repr__, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_42__repr__(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_s_2, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("talib._ta_lib.Function.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__ = {"__unicode__", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__unicode__ (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__unicode__", 0);

  __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, 511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.Function.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_47__str__ = {"__str__", (PyCFunction)__pyx_pw_5talib_7_ta_lib_8Function_47__str__, METH_O, 0};
static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_46__str__(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_defaults_and_docs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("talib._ta_lib.Function.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_343_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_342_ta_getGroupTable[] = "\n    Returns the list of available TALIB function group names. *slow*\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_343_ta_getGroupTable = {"_ta_getGroupTable", (PyCFunction)__pyx_pw_5talib_7_ta_lib_343_ta_getGroupTable, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_342_ta_getGroupTable};
static PyObject *__pyx_pw_5talib_7_ta_lib_343_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_getGroupTable (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_342_ta_getGroupTable(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_342_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self) {
  TA_StringTable *__pyx_v_table;
  PyObject *__pyx_v_groups = NULL;
  unsigned int __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  unsigned int __pyx_t_2;
  unsigned int __pyx_t_3;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_getGroupTable", 0);

  __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, 532, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_groups = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  __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;

    __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 535, __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, 535, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  __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, 536, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_groups);
  __pyx_r = __pyx_v_groups;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib._ta_getGroupTable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_groups);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_345_ta_getFuncTable(PyObject *__pyx_self, PyObject *__pyx_arg_group); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_344_ta_getFuncTable[] = "\n    Returns a list of the functions for the specified group name. *slow*\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_345_ta_getFuncTable = {"_ta_getFuncTable", (PyCFunction)__pyx_pw_5talib_7_ta_lib_345_ta_getFuncTable, METH_O, __pyx_doc_5talib_7_ta_lib_344_ta_getFuncTable};
static PyObject *__pyx_pw_5talib_7_ta_lib_345_ta_getFuncTable(PyObject *__pyx_self, PyObject *__pyx_arg_group) {
  char *__pyx_v_group;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_getFuncTable (wrapper)", 0);
  assert(__pyx_arg_group); {
    __pyx_v_group = __Pyx_PyObject_AsWritableString(__pyx_arg_group); if (unlikely((!__pyx_v_group) && PyErr_Occurred())) __PYX_ERR(1, 539, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_344_ta_getFuncTable(__pyx_self, ((char *)__pyx_v_group));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_344_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group) {
  TA_StringTable *__pyx_v_table;
  PyObject *__pyx_v_functions = NULL;
  unsigned int __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  unsigned int __pyx_t_2;
  unsigned int __pyx_t_3;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_getFuncTable", 0);

  __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, 544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_functions = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  __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;

    __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 547, __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, 547, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  __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, 548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_functions);
  __pyx_r = __pyx_v_functions;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_functions);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_347__get_flags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_346__get_flags[] = "\n    TA-LIB provides hints for multiple flags as a bitwise-ORed int.\n    This function returns the flags from flag found in the provided\n    flags_lookup_dict.\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_347__get_flags = {"__get_flags", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_347__get_flags, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_346__get_flags};
static PyObject *__pyx_pw_5talib_7_ta_lib_347__get_flags(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_flag;
  PyObject *__pyx_v_flags_lookup_dict = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get_flags (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,&__pyx_n_s_flags_lookup_dict,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags_lookup_dict)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, 1); __PYX_ERR(1, 551, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__get_flags") < 0)) __PYX_ERR(1, 551, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_flag = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 551, __pyx_L3_error)
    __pyx_v_flags_lookup_dict = ((PyObject*)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 551, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.__get_flags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flags_lookup_dict), (&PyDict_Type), 1, "flags_lookup_dict", 1))) __PYX_ERR(1, 551, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_346__get_flags(__pyx_self, __pyx_v_flag, __pyx_v_flags_lookup_dict);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_346__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict) {
  PyObject *__pyx_v_value_range = NULL;
  PyObject *__pyx_v_min_int = NULL;
  PyObject *__pyx_v_max_int = NULL;
  PyObject *__pyx_v_ret = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get_flags", 0);

  if (unlikely(__pyx_v_flags_lookup_dict == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys");
    __PYX_ERR(1, 557, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_flags_lookup_dict); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_value_range = __pyx_t_1;
  __pyx_t_1 = 0;

  __pyx_t_2 = PyList_Check(__pyx_v_value_range); 
  __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
  if (__pyx_t_3) {

    __pyx_t_1 = PySequence_List(__pyx_v_value_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 559, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_value_range, __pyx_t_1);
    __pyx_t_1 = 0;

  }

  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_math); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 560, __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, 560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_v_value_range); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_int_2};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 560, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_int_2};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 560, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 560, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__pyx_t_6) {
      __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_4);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_int_2);
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 560, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_min_int = __pyx_t_5;
  __pyx_t_5 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_math); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_v_value_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_8)) {
    PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_1, __pyx_int_2};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 561, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
    PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_1, __pyx_int_2};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 561, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else
  #endif
  {
    __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 561, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_t_1);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_int_2);
    __pyx_t_1 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 561, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyNumber_Int(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_max_int = __pyx_t_8;
  __pyx_t_8 = 0;

  __pyx_t_2 = ((__pyx_v_flag < 1) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_3 = __pyx_t_2;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_flag); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyNumber_PowerOf2(__pyx_int_2, __pyx_v_max_int, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyObject_RichCompare(__pyx_t_8, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 564, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 564, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = __pyx_t_2;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_3) {

    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

  }

  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 570, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_ret = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_max_int, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_min_int);
  __Pyx_GIVEREF(__pyx_v_min_int);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_min_int);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_xrange, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
    __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0;
    __pyx_t_10 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 571, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_10 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 571, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  for (;;) {
    if (likely(!__pyx_t_10)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(1, 571, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 571, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(1, 571, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 571, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_10(__pyx_t_5);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 571, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6);
    __pyx_t_6 = 0;

    __pyx_t_6 = __Pyx_PyNumber_PowerOf2(__pyx_int_2, __pyx_v_i, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 572, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_flag); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 572, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = PyNumber_And(__pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 572, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 572, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_3) {

      if (unlikely(__pyx_v_flags_lookup_dict == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(1, 573, __pyx_L1_error)
      }
      __pyx_t_1 = __Pyx_PyNumber_PowerOf2(__pyx_int_2, __pyx_v_i, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 573, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_flags_lookup_dict, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 573, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_8); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(1, 573, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

    }

  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ret);
  __pyx_r = __pyx_v_ret;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("talib._ta_lib.__get_flags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value_range);
  __Pyx_XDECREF(__pyx_v_min_int);
  __Pyx_XDECREF(__pyx_v_max_int);
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_349_ta_getFuncInfo(PyObject *__pyx_self, PyObject *__pyx_arg_function_name); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_348_ta_getFuncInfo[] = "\n    Returns the info dict for the function. It has the following keys: name,\n    group, help, flags, num_inputs, num_opt_inputs and num_outputs.\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_349_ta_getFuncInfo = {"_ta_getFuncInfo", (PyCFunction)__pyx_pw_5talib_7_ta_lib_349_ta_getFuncInfo, METH_O, __pyx_doc_5talib_7_ta_lib_348_ta_getFuncInfo};
static PyObject *__pyx_pw_5talib_7_ta_lib_349_ta_getFuncInfo(PyObject *__pyx_self, PyObject *__pyx_arg_function_name) {
  char *__pyx_v_function_name;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_getFuncInfo (wrapper)", 0);
  assert(__pyx_arg_function_name); {
    __pyx_v_function_name = __Pyx_PyObject_AsWritableString(__pyx_arg_function_name); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(1, 610, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib._ta_getFuncInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_348_ta_getFuncInfo(__pyx_self, ((char *)__pyx_v_function_name));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name) {
  TA_FuncInfo *__pyx_v_info;
  TA_RetCode __pyx_v_retCode;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  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", 0);

  __pyx_v_retCode = TA_GetFuncInfo(__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name), (&__pyx_v_info));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_GetFuncInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);

  __pyx_t_1 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->name); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_name, __pyx_t_2) < 0) __PYX_ERR(1, 620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->group); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_group, __pyx_t_2) < 0) __PYX_ERR(1, 620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_display_name, __pyx_t_2) < 0) __PYX_ERR(1, 620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_TA_FuncFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_TA_FUNC_FLAGS); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_t_5};
    __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 623, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_4, __pyx_t_5};
    __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 623, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else
  #endif
  {
    __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__pyx_t_6) {
      __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_5);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_function_flags, __pyx_t_2) < 0) __PYX_ERR(1, 620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_info->nbInput); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyInt_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_num_inputs, __pyx_t_3) < 0) __PYX_ERR(1, 620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_info->nbOptInput); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyInt_Type)), __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_num_opt_inputs, __pyx_t_2) < 0) __PYX_ERR(1, 620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_info->nbOutput); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyInt_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_num_outputs, __pyx_t_3) < 0) __PYX_ERR(1, 620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("talib._ta_lib._ta_getFuncInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_351_ta_getInputParameterInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_350_ta_getInputParameterInfo[] = "\n    Returns the function's input info dict for the given index. It has two\n    keys: name and flags.\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_351_ta_getInputParameterInfo = {"_ta_getInputParameterInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_351_ta_getInputParameterInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_350_ta_getInputParameterInfo};
static PyObject *__pyx_pw_5talib_7_ta_lib_351_ta_getInputParameterInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  char *__pyx_v_function_name;
  int __pyx_v_idx;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_getInputParameterInfo (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_function_name,&__pyx_n_s_idx,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function_name)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_idx)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, 1); __PYX_ERR(1, 629, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_ta_getInputParameterInfo") < 0)) __PYX_ERR(1, 629, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(1, 629, __pyx_L3_error)
    __pyx_v_idx = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 629, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 629, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_350_ta_getInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) {
  TA_InputParameterInfo *__pyx_v_info;
  TA_RetCode __pyx_v_retCode;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_getInputParameterInfo", 0);

  __pyx_v_retCode = TA_GetInputParameterInfo(__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name), __pyx_v_idx, (&__pyx_v_info));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_GetInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  __pyx_t_5 = PyObject_Length(__pyx_n_s_in); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 639, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_5, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_lower); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_real, __pyx_v_name, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 640, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_6 != 0);
  if (__pyx_t_7) {

    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_replace); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_3);
    __pyx_t_3 = 0;

    goto __pyx_L3;
  }

  __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_price, __pyx_v_name, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 642, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_7 != 0);
  if (__pyx_t_6) {

    __Pyx_INCREF(__pyx_n_s_prices);
    __Pyx_DECREF_SET(__pyx_v_name, __pyx_n_s_prices);

  }
  __pyx_L3:;

  __Pyx_XDECREF(__pyx_r);

  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(1, 646, __pyx_L1_error)

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_flags); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_From_TA_InputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_TA_INPUT_FLAGS); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_10 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_10 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_4, __pyx_t_8};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 647, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_4, __pyx_t_8};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 647, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  } else
  #endif
  {
    __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 647, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    if (__pyx_t_9) {
      __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_8);
    __pyx_t_4 = 0;
    __pyx_t_8 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 647, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_price_series, __pyx_t_1) < 0) __PYX_ERR(1, 646, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_353_ta_getOptInputParameterInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_352_ta_getOptInputParameterInfo[] = "\n    Returns the function's opt_input info dict for the given index. It has the\n    following keys: name, display_name, type, help, default_value and value.\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_353_ta_getOptInputParameterInfo = {"_ta_getOptInputParameterInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_353_ta_getOptInputParameterInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_352_ta_getOptInputParameterInfo};
static PyObject *__pyx_pw_5talib_7_ta_lib_353_ta_getOptInputParameterInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  char *__pyx_v_function_name;
  int __pyx_v_idx;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_function_name,&__pyx_n_s_idx,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function_name)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_idx)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, 1); __PYX_ERR(1, 650, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_ta_getOptInputParameterInfo") < 0)) __PYX_ERR(1, 650, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(1, 650, __pyx_L3_error)
    __pyx_v_idx = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 650, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 650, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib._ta_getOptInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_352_ta_getOptInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_352_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) {
  TA_OptInputParameterInfo *__pyx_v_info;
  TA_RetCode __pyx_v_retCode;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_default_value = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo", 0);

  __pyx_v_retCode = TA_GetOptInputParameterInfo(__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name), __pyx_v_idx, (&__pyx_v_info));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_GetOptInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  __pyx_t_5 = PyObject_Length(__pyx_n_s_optIn); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 660, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_5, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_lower); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_default_value = __pyx_t_1;
  __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyInt_RemainderObjC(__pyx_v_default_value, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 662, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_6) {

    __pyx_t_3 = __Pyx_PyNumber_Int(__pyx_v_default_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF_SET(__pyx_v_default_value, __pyx_t_3);
    __pyx_t_3 = 0;

  }

  __Pyx_XDECREF(__pyx_r);

  __pyx_t_3 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 666, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(1, 666, __pyx_L1_error)

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->displayName); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_7, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_display_name, __pyx_t_1) < 0) __PYX_ERR(1, 666, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyInt_From_TA_OptInputParameterType(__pyx_v_info->type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 668, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_type_2, __pyx_t_1) < 0) __PYX_ERR(1, 666, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_7, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_help, __pyx_t_1) < 0) __PYX_ERR(1, 666, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_default_value, __pyx_v_default_value) < 0) __PYX_ERR(1, 666, __pyx_L1_error)

  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_value, Py_None) < 0) __PYX_ERR(1, 666, __pyx_L1_error)
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("talib._ta_lib._ta_getOptInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_default_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_355_ta_getOutputParameterInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_354_ta_getOutputParameterInfo[] = "\n    Returns the function's output info dict for the given index. It has two\n    keys: name and flags.\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_355_ta_getOutputParameterInfo = {"_ta_getOutputParameterInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_355_ta_getOutputParameterInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_354_ta_getOutputParameterInfo};
static PyObject *__pyx_pw_5talib_7_ta_lib_355_ta_getOutputParameterInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  char *__pyx_v_function_name;
  int __pyx_v_idx;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_function_name,&__pyx_n_s_idx,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function_name)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_idx)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, 1); __PYX_ERR(1, 674, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_ta_getOutputParameterInfo") < 0)) __PYX_ERR(1, 674, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(1, 674, __pyx_L3_error)
    __pyx_v_idx = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 674, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 674, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5talib_7_ta_lib_354_ta_getOutputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_354_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) {
  TA_OutputParameterInfo *__pyx_v_info;
  TA_RetCode __pyx_v_retCode;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo", 0);

  __pyx_v_retCode = TA_GetOutputParameterInfo(__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name), __pyx_v_idx, (&__pyx_v_info));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_GetOutputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  __pyx_t_5 = PyObject_Length(__pyx_n_s_out); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 684, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_5, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 684, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_lower); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 684, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 684, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_real, __pyx_v_name, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 686, __pyx_L1_error)
  __pyx_t_8 = (__pyx_t_7 != 0);
  if (__pyx_t_8) {
  } else {
    __pyx_t_6 = __pyx_t_8;
    goto __pyx_L4_bool_binop_done;
  }
  __Pyx_INCREF(__pyx_v_name);
  __pyx_t_1 = __pyx_v_name;
  __pyx_t_7 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_real, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 686, __pyx_L1_error)
  if (__pyx_t_7) {
  } else {
    __pyx_t_8 = __pyx_t_7;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_7 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_real0, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 686, __pyx_L1_error)
  if (__pyx_t_7) {
  } else {
    __pyx_t_8 = __pyx_t_7;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_7 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_real1, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 686, __pyx_L1_error)
  __pyx_t_8 = __pyx_t_7;
  __pyx_L6_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = (__pyx_t_8 != 0);
  __pyx_t_6 = __pyx_t_7;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_6) {

    __pyx_t_5 = PyObject_Length(__pyx_n_s_real); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 687, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_5, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 687, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1);
    __pyx_t_1 = 0;

  }

  __Pyx_XDECREF(__pyx_r);

  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 690, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(1, 690, __pyx_L1_error)

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_flags); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_From_TA_OutputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_TA_OUTPUT_FLAGS); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = NULL;
  __pyx_t_11 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_11 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_t_4, __pyx_t_9};
    __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 691, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_t_4, __pyx_t_9};
    __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 691, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  } else
  #endif
  {
    __pyx_t_12 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 691, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (__pyx_t_10) {
      __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_11, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_t_9);
    __pyx_t_4 = 0;
    __pyx_t_9 = 0;
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 691, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_flags, __pyx_t_3) < 0) __PYX_ERR(1, 690, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("talib._ta_lib._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_357_get_defaults_and_docs(PyObject *__pyx_self, PyObject *__pyx_v_func_info); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_356_get_defaults_and_docs[] = "\n    Returns a tuple with two outputs: defaults, a dict of parameter defaults,\n    and documentation, a formatted docstring for the function.\n    .. Note: func_info should come from Function.info, *not* _ta_getFuncInfo.\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_357_get_defaults_and_docs = {"_get_defaults_and_docs", (PyCFunction)__pyx_pw_5talib_7_ta_lib_357_get_defaults_and_docs, METH_O, __pyx_doc_5talib_7_ta_lib_356_get_defaults_and_docs};
static PyObject *__pyx_pw_5talib_7_ta_lib_357_get_defaults_and_docs(PyObject *__pyx_self, PyObject *__pyx_v_func_info) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_get_defaults_and_docs (wrapper)", 0);
  __pyx_r = __pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(__pyx_self, ((PyObject *)__pyx_v_func_info));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info) {
  PyObject *__pyx_v_defaults = NULL;
  PyObject *__pyx_v_func_line = NULL;
  PyObject *__pyx_v_func_args = NULL;
  PyObject *__pyx_v_docs = NULL;
  PyObject *__pyx_v_input_names = NULL;
  PyObject *__pyx_v_input_name = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_params = NULL;
  PyObject *__pyx_v_param = NULL;
  PyObject *__pyx_v_outputs = NULL;
  PyObject *__pyx_v_output = NULL;
  PyObject *__pyx_v_documentation = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_get_defaults_and_docs", 0);

  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_defaults = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__pyx_kp_s__8);
  __Pyx_GIVEREF(__pyx_kp_s__8);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_kp_s__8);
  __pyx_t_1 = 0;
  __pyx_v_func_line = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_kp_s_input_arrays_2);
  __Pyx_GIVEREF(__pyx_kp_s_input_arrays_2);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_kp_s_input_arrays_2);
  __pyx_v_func_args = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_docs = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  __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, 704, __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, 704, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_n_s_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 706, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_input_names = __pyx_t_2;
  __pyx_t_2 = 0;

  __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_kp_s_Inputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 707, __pyx_L1_error)

  if (likely(PyList_CheckExact(__pyx_v_input_names)) || PyTuple_CheckExact(__pyx_v_input_names)) {
    __pyx_t_2 = __pyx_v_input_names; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 708, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 708, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 708, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 708, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 708, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 708, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 708, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1);
    __pyx_t_1 = 0;

    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_input_names, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 709, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;

    __pyx_t_6 = PyList_Check(__pyx_v_value); 
    __pyx_t_7 = ((!(__pyx_t_6 != 0)) != 0);
    if (__pyx_t_7) {

      __Pyx_INCREF(__pyx_kp_s_any_ndarray);
      __Pyx_DECREF_SET(__pyx_v_value, __pyx_kp_s_any_ndarray);

    }

    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 712, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_input_name);
    __Pyx_GIVEREF(__pyx_v_input_name);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_input_name);
    __Pyx_INCREF(__pyx_v_value);
    __Pyx_GIVEREF(__pyx_v_value);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_value);
    __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 712, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 712, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_n_s_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 714, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_params = __pyx_t_2;
  __pyx_t_2 = 0;

  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_params); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 715, __pyx_L1_error)
  if (__pyx_t_7) {

    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_kp_s_Parameters); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 716, __pyx_L1_error)

  }

  if (likely(PyList_CheckExact(__pyx_v_params)) || PyTuple_CheckExact(__pyx_v_params)) {
    __pyx_t_2 = __pyx_v_params; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_params); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 717, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 717, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_8 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_8); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 717, __pyx_L1_error)
        #else
        __pyx_t_8 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 717, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_8); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 717, __pyx_L1_error)
        #else
        __pyx_t_8 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 717, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        #endif
      }
    } else {
      __pyx_t_8 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_8)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 717, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_8);
    }
    __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_8);
    __pyx_t_8 = 0;

    __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 718, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 718, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_param);
    __Pyx_GIVEREF(__pyx_v_param);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_param);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8);
    __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 718, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 718, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

    __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_param);
    __Pyx_GIVEREF(__pyx_v_param);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_param);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8);
    __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_s_s_2, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_args, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

    __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 720, __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, 720, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

    __pyx_t_7 = (__Pyx_PyString_Equals(__pyx_v_param, __pyx_n_s_matype, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 721, __pyx_L1_error)
    if (__pyx_t_7) {

      __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, 722, __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, 722, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 722, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 722, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyString_FormatSafe(__pyx_kp_s_s_3, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 722, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = PyList_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 722, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_GIVEREF(__pyx_t_8);
      PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_9);
      PyList_SET_ITEM(__pyx_t_10, 1, __pyx_t_9);
      __pyx_t_8 = 0;
      __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyString_Join(__pyx_kp_s__9, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 722, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(__Pyx_SetItemInt(__pyx_v_docs, -1L, __pyx_t_9, long, 1, __Pyx_PyInt_From_long, 1, 1, 1) < 0)) __PYX_ERR(1, 722, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    }

  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_n_s_output_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_outputs = __pyx_t_2;
  __pyx_t_2 = 0;

  __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_kp_s_Outputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 725, __pyx_L1_error)

  if (likely(PyList_CheckExact(__pyx_v_outputs)) || PyTuple_CheckExact(__pyx_v_outputs)) {
    __pyx_t_2 = __pyx_v_outputs; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 726, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 726, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 726, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 726, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      }
    } else {
      __pyx_t_9 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_9)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 726, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_9);
    __pyx_t_9 = 0;

    __pyx_t_7 = (__Pyx_PyString_Equals(__pyx_v_output, __pyx_n_s_integer, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 727, __pyx_L1_error)
    if (__pyx_t_7) {

      __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);

    }

    __pyx_t_9 = __Pyx_PyString_FormatSafe(__pyx_kp_s_s_4, __pyx_v_output); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 729, __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, 729, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __Pyx_PyString_Join(__pyx_kp_s__6, __pyx_v_func_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 731, __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, 731, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_kp_s__10); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 732, __pyx_L1_error)

  __pyx_t_2 = __Pyx_PyString_Join(__pyx_kp_s__5, __pyx_v_func_line); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 733, __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, 733, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __Pyx_PyString_Join(__pyx_kp_s__11, __pyx_v_docs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_documentation = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_defaults);
  __Pyx_GIVEREF(__pyx_v_defaults);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_defaults);
  __Pyx_INCREF(__pyx_v_documentation);
  __Pyx_GIVEREF(__pyx_v_documentation);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_documentation);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("talib._ta_lib._get_defaults_and_docs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_defaults);
  __Pyx_XDECREF(__pyx_v_func_line);
  __Pyx_XDECREF(__pyx_v_func_args);
  __Pyx_XDECREF(__pyx_v_docs);
  __Pyx_XDECREF(__pyx_v_input_names);
  __Pyx_XDECREF(__pyx_v_input_name);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_params);
  __Pyx_XDECREF(__pyx_v_param);
  __Pyx_XDECREF(__pyx_v_outputs);
  __Pyx_XDECREF(__pyx_v_output);
  __Pyx_XDECREF(__pyx_v_documentation);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static TA_FuncHandle *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *__pyx_v_function_name) {
  TA_FuncHandle *__pyx_v_handle;
  TA_FuncHandle *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ta_getFuncHandle", 0);

  __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, 751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_r = __pyx_v_handle;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("talib._ta_lib.__ta_getFuncHandle", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *__pyx_v_function_name) {
  TA_ParamHolder *__pyx_v_holder;
  TA_RetCode __pyx_v_retCode;
  TA_ParamHolder *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ta_paramHolderAlloc", 0);

  __pyx_v_retCode = TA_ParamHolderAlloc(__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name), (&__pyx_v_holder));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ParamHolderAlloc, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_r = __pyx_v_holder;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("talib._ta_lib.__ta_paramHolderAlloc", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_params) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ta_paramHolderFree", 0);

  __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, 768, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;


  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("talib._ta_lib.__ta_paramHolderFree", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, int __pyx_v_value) {
  TA_RetCode __pyx_v_retCode;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ta_setOptInputParamInteger", 0);

  __pyx_v_retCode = TA_SetOptInputParamInteger(__pyx_v_holder, __pyx_v_idx, __pyx_v_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, 772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;


  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("talib._ta_lib.__ta_setOptInputParamInteger", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, int __pyx_v_value) {
  TA_RetCode __pyx_v_retCode;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ta_setOptInputParamReal", 0);

  __pyx_v_retCode = TA_SetOptInputParamReal(__pyx_v_holder, __pyx_v_idx, __pyx_v_value);

  __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, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;


  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("talib._ta_lib.__ta_setOptInputParamReal", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *__pyx_v_holder) {
  int __pyx_v_lookback;
  TA_RetCode __pyx_v_retCode;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ta_getLookback", 0);

  __pyx_v_retCode = TA_GetLookback(__pyx_v_holder, (&__pyx_v_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, 781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_r = __pyx_v_lookback;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("talib._ta_lib.__ta_getLookback", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_359stream_ACOS(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_358stream_ACOS[] = " ACOS(real)\n\n    Vector Trigonometric ACos (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_359stream_ACOS = {"stream_ACOS", (PyCFunction)__pyx_pw_5talib_7_ta_lib_359stream_ACOS, METH_O, __pyx_doc_5talib_7_ta_lib_358stream_ACOS};
static PyObject *__pyx_pw_5talib_7_ta_lib_359stream_ACOS(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_ACOS (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 11, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_358stream_ACOS(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_358stream_ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_ACOS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_ACOS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_361stream_AD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_360stream_AD[] = " AD(high, low, close, volume)\n\n    Chaikin A/D Line (Volume Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close', 'volume']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_361stream_AD = {"stream_AD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_361stream_AD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_360stream_AD};
static PyObject *__pyx_pw_5talib_7_ta_lib_361stream_AD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  PyArrayObject *__pyx_v_volume = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_AD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_volume,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, 1); __PYX_ERR(3, 38, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, 2); __PYX_ERR(3, 38, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_volume)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, 3); __PYX_ERR(3, 38, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_AD") < 0)) __PYX_ERR(3, 38, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    __pyx_v_volume = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 38, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_AD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 38, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 38, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 38, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(3, 38, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_360stream_AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_360stream_AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  double *__pyx_v_volume_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_AD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);
  __Pyx_INCREF((PyObject *)__pyx_v_volume);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_volume_data = ((double *)__pyx_v_volume->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 66, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_AD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_AD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XDECREF((PyObject *)__pyx_v_volume);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_363stream_ADD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_362stream_ADD[] = " ADD(real0, real1)\n\n    Vector Arithmetic Add (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_363stream_ADD = {"stream_ADD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_363stream_ADD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_362stream_ADD};
static PyObject *__pyx_pw_5talib_7_ta_lib_363stream_ADD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real0 = 0;
  PyArrayObject *__pyx_v_real1 = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_ADD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_ADD", 1, 2, 2, 1); __PYX_ERR(3, 74, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_ADD") < 0)) __PYX_ERR(3, 74, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_real0 = ((PyArrayObject *)values[0]);
    __pyx_v_real1 = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_ADD", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 74, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_ADD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(3, 74, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(3, 74, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_362stream_ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_362stream_ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real0_data;
  double *__pyx_v_real1_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_ADD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real0);
  __Pyx_INCREF((PyObject *)__pyx_v_real1);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real0_data = ((double *)__pyx_v_real0->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real1_data = ((double *)__pyx_v_real1->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 97, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_ADD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_ADD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real0);
  __Pyx_XDECREF((PyObject *)__pyx_v_real1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_365stream_ADOSC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_364stream_ADOSC[] = " ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\n    Chaikin A/D Oscillator (Volume Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close', 'volume']\n    Parameters:\n        fastperiod: 3\n        slowperiod: 10\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_365stream_ADOSC = {"stream_ADOSC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_365stream_ADOSC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_364stream_ADOSC};
static PyObject *__pyx_pw_5talib_7_ta_lib_365stream_ADOSC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  PyArrayObject *__pyx_v_volume = 0;
  int __pyx_v_fastperiod;
  int __pyx_v_slowperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_ADOSC (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_volume,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, 1); __PYX_ERR(3, 105, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, 2); __PYX_ERR(3, 105, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_volume)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, 3); __PYX_ERR(3, 105, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastperiod);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowperiod);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_ADOSC") < 0)) __PYX_ERR(3, 105, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    __pyx_v_volume = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 105, __pyx_L3_error)
    } else {
      __pyx_v_fastperiod = ((int)-2147483648);
    }
    if (values[5]) {
      __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 105, __pyx_L3_error)
    } else {
      __pyx_v_slowperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 105, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 105, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 105, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 105, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(3, 105, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_364stream_ADOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  double *__pyx_v_volume_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_ADOSC", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);
  __Pyx_INCREF((PyObject *)__pyx_v_volume);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_volume_data = ((double *)__pyx_v_volume->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 136, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_ADOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XDECREF((PyObject *)__pyx_v_volume);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_367stream_ADX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_366stream_ADX[] = " ADX(high, low, close[, timeperiod=?])\n\n    Average Directional Movement Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_367stream_ADX = {"stream_ADX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_367stream_ADX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_366stream_ADX};
static PyObject *__pyx_pw_5talib_7_ta_lib_367stream_ADX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_ADX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, 1); __PYX_ERR(3, 144, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, 2); __PYX_ERR(3, 144, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_ADX") < 0)) __PYX_ERR(3, 144, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 144, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 144, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_ADX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 144, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 144, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 144, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_366stream_ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_366stream_ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_ADX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->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;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 171, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_ADX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_ADX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_369stream_ADXR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_368stream_ADXR[] = " ADXR(high, low, close[, timeperiod=?])\n\n    Average Directional Movement Index Rating (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_369stream_ADXR = {"stream_ADXR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_369stream_ADXR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_368stream_ADXR};
static PyObject *__pyx_pw_5talib_7_ta_lib_369stream_ADXR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_ADXR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, 1); __PYX_ERR(3, 179, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, 2); __PYX_ERR(3, 179, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_ADXR") < 0)) __PYX_ERR(3, 179, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 179, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 179, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 179, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 179, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 179, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_368stream_ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_368stream_ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_ADXR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 206, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_ADXR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_371stream_APO(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_370stream_APO[] = " APO(real[, fastperiod=?, slowperiod=?, matype=?])\n\n    Absolute Price Oscillator (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        slowperiod: 26\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_371stream_APO = {"stream_APO", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_371stream_APO, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_370stream_APO};
static PyObject *__pyx_pw_5talib_7_ta_lib_371stream_APO(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_fastperiod;
  int __pyx_v_slowperiod;
  int __pyx_v_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_APO (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,&__pyx_n_s_matype,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowperiod);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matype);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_APO") < 0)) __PYX_ERR(3, 214, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 214, __pyx_L3_error)
    } else {
      __pyx_v_fastperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 214, __pyx_L3_error)
    } else {
      __pyx_v_slowperiod = ((int)-2147483648);
    }
    if (values[3]) {
      __pyx_v_matype = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 214, __pyx_L3_error)
    } else {
      __pyx_v_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_APO", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 214, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_APO", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 214, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_370stream_APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_370stream_APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_APO", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_APO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_APO", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_373stream_AROON(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_372stream_AROON[] = " AROON(high, low[, timeperiod=?])\n\n    Aroon (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        aroondown\n        aroonup\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_373stream_AROON = {"stream_AROON", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_373stream_AROON, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_372stream_AROON};
static PyObject *__pyx_pw_5talib_7_ta_lib_373stream_AROON(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_AROON (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_AROON", 0, 2, 3, 1); __PYX_ERR(3, 245, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_AROON") < 0)) __PYX_ERR(3, 245, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 245, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_AROON", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 245, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_AROON", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 245, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 245, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_372stream_AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_372stream_AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outaroondown;
  double __pyx_v_outaroonup;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_AROON", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 271, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outaroondown = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outaroonup = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_AROON((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outaroondown), (&__pyx_v_outaroonup));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("talib._ta_lib.stream_AROON", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_375stream_AROONOSC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_374stream_AROONOSC[] = " AROONOSC(high, low[, timeperiod=?])\n\n    Aroon Oscillator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_375stream_AROONOSC = {"stream_AROONOSC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_375stream_AROONOSC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_374stream_AROONOSC};
static PyObject *__pyx_pw_5talib_7_ta_lib_375stream_AROONOSC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_AROONOSC (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_AROONOSC", 0, 2, 3, 1); __PYX_ERR(3, 280, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_AROONOSC") < 0)) __PYX_ERR(3, 280, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 280, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_AROONOSC", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 280, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 280, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 280, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_374stream_AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_374stream_AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_AROONOSC", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 304, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_AROONOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_377stream_ASIN(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_376stream_ASIN[] = " ASIN(real)\n\n    Vector Trigonometric ASin (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_377stream_ASIN = {"stream_ASIN", (PyCFunction)__pyx_pw_5talib_7_ta_lib_377stream_ASIN, METH_O, __pyx_doc_5talib_7_ta_lib_376stream_ASIN};
static PyObject *__pyx_pw_5talib_7_ta_lib_377stream_ASIN(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_ASIN (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 312, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_376stream_ASIN(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_376stream_ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_ASIN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_ASIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_379stream_ATAN(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_378stream_ATAN[] = " ATAN(real)\n\n    Vector Trigonometric ATan (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_379stream_ATAN = {"stream_ATAN", (PyCFunction)__pyx_pw_5talib_7_ta_lib_379stream_ATAN, METH_O, __pyx_doc_5talib_7_ta_lib_378stream_ATAN};
static PyObject *__pyx_pw_5talib_7_ta_lib_379stream_ATAN(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_ATAN (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 339, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_378stream_ATAN(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_378stream_ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_ATAN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_ATAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 362, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_381stream_ATR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_380stream_ATR[] = " ATR(high, low, close[, timeperiod=?])\n\n    Average True Range (Volatility Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_381stream_ATR = {"stream_ATR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_381stream_ATR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_380stream_ATR};
static PyObject *__pyx_pw_5talib_7_ta_lib_381stream_ATR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_ATR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, 1); __PYX_ERR(3, 366, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, 2); __PYX_ERR(3, 366, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_ATR") < 0)) __PYX_ERR(3, 366, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 366, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 366, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_ATR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 366, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 366, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 366, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_380stream_ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_380stream_ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_ATR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 393, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_ATR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_ATR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_383stream_AVGPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_382stream_AVGPRICE[] = " AVGPRICE(open, high, low, close)\n\n    Average Price (Price Transform)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_383stream_AVGPRICE = {"stream_AVGPRICE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_383stream_AVGPRICE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_382stream_AVGPRICE};
static PyObject *__pyx_pw_5talib_7_ta_lib_383stream_AVGPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_AVGPRICE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, 1); __PYX_ERR(3, 401, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, 2); __PYX_ERR(3, 401, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, 3); __PYX_ERR(3, 401, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_AVGPRICE") < 0)) __PYX_ERR(3, 401, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 401, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 401, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 401, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 401, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 401, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_382stream_AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_382stream_AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_AVGPRICE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 429, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_AVGPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_385stream_BBANDS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_384stream_BBANDS[] = " BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\n    Bollinger Bands (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        nbdevup: 2\n        nbdevdn: 2\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        upperband\n        middleband\n        lowerband\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_385stream_BBANDS = {"stream_BBANDS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_385stream_BBANDS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_384stream_BBANDS};
static PyObject *__pyx_pw_5talib_7_ta_lib_385stream_BBANDS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  double __pyx_v_nbdevup;
  double __pyx_v_nbdevdn;
  int __pyx_v_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_BBANDS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_nbdevup,&__pyx_n_s_nbdevdn,&__pyx_n_s_matype,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nbdevup);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nbdevdn);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matype);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_BBANDS") < 0)) __PYX_ERR(3, 437, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 437, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_nbdevup = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 437, __pyx_L3_error)
    } else {
      __pyx_v_nbdevup = ((double)-4e37);
    }
    if (values[3]) {
      __pyx_v_nbdevdn = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 437, __pyx_L3_error)
    } else {
      __pyx_v_nbdevdn = ((double)-4e37);
    }
    if (values[4]) {
      __pyx_v_matype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 437, __pyx_L3_error)
    } else {
      __pyx_v_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_BBANDS", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 437, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 437, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_384stream_BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_384stream_BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outrealupperband;
  double __pyx_v_outrealmiddleband;
  double __pyx_v_outreallowerband;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_BBANDS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outrealmiddleband = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_BBANDS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outrealupperband), (&__pyx_v_outrealmiddleband), (&__pyx_v_outreallowerband));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("talib._ta_lib.stream_BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_387stream_BETA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_386stream_BETA[] = " BETA(real0, real1[, timeperiod=?])\n\n    Beta (Statistic Functions)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Parameters:\n        timeperiod: 5\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_387stream_BETA = {"stream_BETA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_387stream_BETA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_386stream_BETA};
static PyObject *__pyx_pw_5talib_7_ta_lib_387stream_BETA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real0 = 0;
  PyArrayObject *__pyx_v_real1 = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_BETA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_BETA", 0, 2, 3, 1); __PYX_ERR(3, 475, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_BETA") < 0)) __PYX_ERR(3, 475, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real0 = ((PyArrayObject *)values[0]);
    __pyx_v_real1 = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 475, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_BETA", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 475, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_BETA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(3, 475, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(3, 475, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_386stream_BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_386stream_BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real0_data;
  double *__pyx_v_real1_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_BETA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real0);
  __Pyx_INCREF((PyObject *)__pyx_v_real1);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real0_data = ((double *)__pyx_v_real0->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 498, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real1_data = ((double *)__pyx_v_real1->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 500, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_BETA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_BETA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real0);
  __Pyx_XDECREF((PyObject *)__pyx_v_real1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_389stream_BOP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_388stream_BOP[] = " BOP(open, high, low, close)\n\n    Balance Of Power (Momentum Indicators)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_389stream_BOP = {"stream_BOP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_389stream_BOP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_388stream_BOP};
static PyObject *__pyx_pw_5talib_7_ta_lib_389stream_BOP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_BOP (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, 1); __PYX_ERR(3, 508, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, 2); __PYX_ERR(3, 508, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, 3); __PYX_ERR(3, 508, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_BOP") < 0)) __PYX_ERR(3, 508, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 508, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_BOP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 508, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 508, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 508, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 508, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_388stream_BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_388stream_BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_BOP", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 528, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 532, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 536, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_BOP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_BOP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_391stream_CCI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_390stream_CCI[] = " CCI(high, low, close[, timeperiod=?])\n\n    Commodity Channel Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_391stream_CCI = {"stream_CCI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_391stream_CCI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_390stream_CCI};
static PyObject *__pyx_pw_5talib_7_ta_lib_391stream_CCI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CCI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, 1); __PYX_ERR(3, 544, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, 2); __PYX_ERR(3, 544, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CCI") < 0)) __PYX_ERR(3, 544, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 544, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 544, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CCI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 544, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 544, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 544, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_390stream_CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_390stream_CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CCI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 571, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_CCI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CCI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_393stream_CDL2CROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_392stream_CDL2CROWS[] = " CDL2CROWS(open, high, low, close)\n\n    Two Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_393stream_CDL2CROWS = {"stream_CDL2CROWS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_393stream_CDL2CROWS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_392stream_CDL2CROWS};
static PyObject *__pyx_pw_5talib_7_ta_lib_393stream_CDL2CROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDL2CROWS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, 1); __PYX_ERR(3, 579, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, 2); __PYX_ERR(3, 579, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, 3); __PYX_ERR(3, 579, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDL2CROWS") < 0)) __PYX_ERR(3, 579, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 579, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 579, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 579, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 579, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 579, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_392stream_CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_392stream_CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDL2CROWS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 607, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDL2CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 610, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 611, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_395stream_CDL3BLACKCROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_394stream_CDL3BLACKCROWS[] = " CDL3BLACKCROWS(open, high, low, close)\n\n    Three Black Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_395stream_CDL3BLACKCROWS = {"stream_CDL3BLACKCROWS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_395stream_CDL3BLACKCROWS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_394stream_CDL3BLACKCROWS};
static PyObject *__pyx_pw_5talib_7_ta_lib_395stream_CDL3BLACKCROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDL3BLACKCROWS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, 1); __PYX_ERR(3, 615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, 2); __PYX_ERR(3, 615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, 3); __PYX_ERR(3, 615, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDL3BLACKCROWS") < 0)) __PYX_ERR(3, 615, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 615, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 615, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 615, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 615, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 615, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_394stream_CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_394stream_CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDL3BLACKCROWS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 643, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDL3BLACKCROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_397stream_CDL3INSIDE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_396stream_CDL3INSIDE[] = " CDL3INSIDE(open, high, low, close)\n\n    Three Inside Up/Down (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_397stream_CDL3INSIDE = {"stream_CDL3INSIDE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_397stream_CDL3INSIDE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_396stream_CDL3INSIDE};
static PyObject *__pyx_pw_5talib_7_ta_lib_397stream_CDL3INSIDE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDL3INSIDE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, 1); __PYX_ERR(3, 651, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, 2); __PYX_ERR(3, 651, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, 3); __PYX_ERR(3, 651, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDL3INSIDE") < 0)) __PYX_ERR(3, 651, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 651, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 651, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 651, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 651, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 651, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_396stream_CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_396stream_CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDL3INSIDE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 673, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 679, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDL3INSIDE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_399stream_CDL3LINESTRIKE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_398stream_CDL3LINESTRIKE[] = " CDL3LINESTRIKE(open, high, low, close)\n\n    Three-Line Strike  (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_399stream_CDL3LINESTRIKE = {"stream_CDL3LINESTRIKE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_399stream_CDL3LINESTRIKE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_398stream_CDL3LINESTRIKE};
static PyObject *__pyx_pw_5talib_7_ta_lib_399stream_CDL3LINESTRIKE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDL3LINESTRIKE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, 1); __PYX_ERR(3, 687, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, 2); __PYX_ERR(3, 687, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, 3); __PYX_ERR(3, 687, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDL3LINESTRIKE") < 0)) __PYX_ERR(3, 687, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 687, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 687, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 687, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 687, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 687, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_398stream_CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_398stream_CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDL3LINESTRIKE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 713, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 715, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDL3LINESTRIKE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 718, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_401stream_CDL3OUTSIDE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_400stream_CDL3OUTSIDE[] = " CDL3OUTSIDE(open, high, low, close)\n\n    Three Outside Up/Down (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_401stream_CDL3OUTSIDE = {"stream_CDL3OUTSIDE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_401stream_CDL3OUTSIDE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_400stream_CDL3OUTSIDE};
static PyObject *__pyx_pw_5talib_7_ta_lib_401stream_CDL3OUTSIDE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDL3OUTSIDE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, 1); __PYX_ERR(3, 723, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, 2); __PYX_ERR(3, 723, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, 3); __PYX_ERR(3, 723, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDL3OUTSIDE") < 0)) __PYX_ERR(3, 723, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 723, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 723, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 723, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 723, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 723, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_400stream_CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_400stream_CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDL3OUTSIDE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 751, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDL3OUTSIDE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH[] = " CDL3STARSINSOUTH(open, high, low, close)\n\n    Three Stars In The South (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH = {"stream_CDL3STARSINSOUTH", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH};
static PyObject *__pyx_pw_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDL3STARSINSOUTH (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, 1); __PYX_ERR(3, 759, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, 2); __PYX_ERR(3, 759, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, 3); __PYX_ERR(3, 759, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDL3STARSINSOUTH") < 0)) __PYX_ERR(3, 759, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 759, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 759, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 759, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 759, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 759, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDL3STARSINSOUTH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 779, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 787, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDL3STARSINSOUTH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 791, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS[] = " CDL3WHITESOLDIERS(open, high, low, close)\n\n    Three Advancing White Soldiers (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS = {"stream_CDL3WHITESOLDIERS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS};
static PyObject *__pyx_pw_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDL3WHITESOLDIERS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, 1); __PYX_ERR(3, 795, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, 2); __PYX_ERR(3, 795, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, 3); __PYX_ERR(3, 795, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDL3WHITESOLDIERS") < 0)) __PYX_ERR(3, 795, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 795, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 795, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 795, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 795, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 795, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDL3WHITESOLDIERS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __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;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 823, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDL3WHITESOLDIERS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_407stream_CDLABANDONEDBABY(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_406stream_CDLABANDONEDBABY[] = " CDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\n    Abandoned Baby (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_407stream_CDLABANDONEDBABY = {"stream_CDLABANDONEDBABY", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_407stream_CDLABANDONEDBABY, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_406stream_CDLABANDONEDBABY};
static PyObject *__pyx_pw_5talib_7_ta_lib_407stream_CDLABANDONEDBABY(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLABANDONEDBABY (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, 1); __PYX_ERR(3, 831, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, 2); __PYX_ERR(3, 831, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, 3); __PYX_ERR(3, 831, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLABANDONEDBABY") < 0)) __PYX_ERR(3, 831, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 831, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.3);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 831, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 831, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 831, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 831, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 831, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_406stream_CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_406stream_CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLABANDONEDBABY", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 853, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 857, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 859, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 861, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLABANDONEDBABY((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 864, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 865, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_408stream_CDLADVANCEBLOCK[] = " CDLADVANCEBLOCK(open, high, low, close)\n\n    Advance Block (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK = {"stream_CDLADVANCEBLOCK", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_408stream_CDLADVANCEBLOCK};
static PyObject *__pyx_pw_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLADVANCEBLOCK (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, 1); __PYX_ERR(3, 869, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, 2); __PYX_ERR(3, 869, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, 3); __PYX_ERR(3, 869, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLADVANCEBLOCK") < 0)) __PYX_ERR(3, 869, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 869, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 869, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 869, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 869, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 869, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_408stream_CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_408stream_CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLADVANCEBLOCK", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 897, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLADVANCEBLOCK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 900, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 901, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_411stream_CDLBELTHOLD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_410stream_CDLBELTHOLD[] = " CDLBELTHOLD(open, high, low, close)\n\n    Belt-hold (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_411stream_CDLBELTHOLD = {"stream_CDLBELTHOLD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_411stream_CDLBELTHOLD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_410stream_CDLBELTHOLD};
static PyObject *__pyx_pw_5talib_7_ta_lib_411stream_CDLBELTHOLD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLBELTHOLD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, 1); __PYX_ERR(3, 905, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, 2); __PYX_ERR(3, 905, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, 3); __PYX_ERR(3, 905, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLBELTHOLD") < 0)) __PYX_ERR(3, 905, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 905, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 905, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 905, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 905, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 905, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_410stream_CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_410stream_CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLBELTHOLD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 931, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 933, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLBELTHOLD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 937, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_413stream_CDLBREAKAWAY(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_412stream_CDLBREAKAWAY[] = " CDLBREAKAWAY(open, high, low, close)\n\n    Breakaway (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_413stream_CDLBREAKAWAY = {"stream_CDLBREAKAWAY", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_413stream_CDLBREAKAWAY, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_412stream_CDLBREAKAWAY};
static PyObject *__pyx_pw_5talib_7_ta_lib_413stream_CDLBREAKAWAY(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLBREAKAWAY (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, 1); __PYX_ERR(3, 941, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, 2); __PYX_ERR(3, 941, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, 3); __PYX_ERR(3, 941, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLBREAKAWAY") < 0)) __PYX_ERR(3, 941, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 941, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 941, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 941, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 941, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 941, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_412stream_CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_412stream_CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLBREAKAWAY", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 965, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 969, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLBREAKAWAY((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 973, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU[] = " CDLCLOSINGMARUBOZU(open, high, low, close)\n\n    Closing Marubozu (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU = {"stream_CDLCLOSINGMARUBOZU", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU};
static PyObject *__pyx_pw_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLCLOSINGMARUBOZU (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, 1); __PYX_ERR(3, 977, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, 2); __PYX_ERR(3, 977, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, 3); __PYX_ERR(3, 977, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLCLOSINGMARUBOZU") < 0)) __PYX_ERR(3, 977, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 977, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 977, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 977, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 977, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 977, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLCLOSINGMARUBOZU", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 997, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1005, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1008, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL[] = " CDLCONCEALBABYSWALL(open, high, low, close)\n\n    Concealing Baby Swallow (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL = {"stream_CDLCONCEALBABYSWALL", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL};
static PyObject *__pyx_pw_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLCONCEALBABYSWALL (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, 1); __PYX_ERR(3, 1013, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, 2); __PYX_ERR(3, 1013, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, 3); __PYX_ERR(3, 1013, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLCONCEALBABYSWALL") < 0)) __PYX_ERR(3, 1013, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1013, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1013, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1013, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1013, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1013, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLCONCEALBABYSWALL", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1033, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1035, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1037, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1039, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1041, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLCONCEALBABYSWALL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1045, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK[] = " CDLCOUNTERATTACK(open, high, low, close)\n\n    Counterattack (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK = {"stream_CDLCOUNTERATTACK", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK};
static PyObject *__pyx_pw_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLCOUNTERATTACK (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, 1); __PYX_ERR(3, 1049, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, 2); __PYX_ERR(3, 1049, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, 3); __PYX_ERR(3, 1049, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLCOUNTERATTACK") < 0)) __PYX_ERR(3, 1049, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1049, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1049, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1049, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1049, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1049, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLCOUNTERATTACK", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1069, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1075, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1077, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLCOUNTERATTACK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1081, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER[] = " CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\n    Dark Cloud Cover (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.5\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER = {"stream_CDLDARKCLOUDCOVER", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER};
static PyObject *__pyx_pw_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLDARKCLOUDCOVER (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, 1); __PYX_ERR(3, 1085, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, 2); __PYX_ERR(3, 1085, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, 3); __PYX_ERR(3, 1085, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLDARKCLOUDCOVER") < 0)) __PYX_ERR(3, 1085, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 1085, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.5);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1085, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1085, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1085, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1085, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1085, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLDARKCLOUDCOVER", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __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;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1115, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLDARKCLOUDCOVER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_423stream_CDLDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_422stream_CDLDOJI[] = " CDLDOJI(open, high, low, close)\n\n    Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_423stream_CDLDOJI = {"stream_CDLDOJI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_423stream_CDLDOJI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_422stream_CDLDOJI};
static PyObject *__pyx_pw_5talib_7_ta_lib_423stream_CDLDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLDOJI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, 1); __PYX_ERR(3, 1123, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, 2); __PYX_ERR(3, 1123, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, 3); __PYX_ERR(3, 1123, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLDOJI") < 0)) __PYX_ERR(3, 1123, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1123, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1123, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1123, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1123, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1123, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_422stream_CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_422stream_CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLDOJI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1151, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_425stream_CDLDOJISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_424stream_CDLDOJISTAR[] = " CDLDOJISTAR(open, high, low, close)\n\n    Doji Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_425stream_CDLDOJISTAR = {"stream_CDLDOJISTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_425stream_CDLDOJISTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_424stream_CDLDOJISTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_425stream_CDLDOJISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLDOJISTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, 1); __PYX_ERR(3, 1159, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, 2); __PYX_ERR(3, 1159, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, 3); __PYX_ERR(3, 1159, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLDOJISTAR") < 0)) __PYX_ERR(3, 1159, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1159, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1159, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1159, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1159, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1159, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_424stream_CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_424stream_CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLDOJISTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1187, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI[] = " CDLDRAGONFLYDOJI(open, high, low, close)\n\n    Dragonfly Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI = {"stream_CDLDRAGONFLYDOJI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI};
static PyObject *__pyx_pw_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLDRAGONFLYDOJI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, 1); __PYX_ERR(3, 1195, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, 2); __PYX_ERR(3, 1195, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, 3); __PYX_ERR(3, 1195, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLDRAGONFLYDOJI") < 0)) __PYX_ERR(3, 1195, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1195, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1195, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1195, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1195, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1195, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLDRAGONFLYDOJI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1223, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLDRAGONFLYDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_429stream_CDLENGULFING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_428stream_CDLENGULFING[] = " CDLENGULFING(open, high, low, close)\n\n    Engulfing Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_429stream_CDLENGULFING = {"stream_CDLENGULFING", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_429stream_CDLENGULFING, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_428stream_CDLENGULFING};
static PyObject *__pyx_pw_5talib_7_ta_lib_429stream_CDLENGULFING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLENGULFING (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, 1); __PYX_ERR(3, 1231, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, 2); __PYX_ERR(3, 1231, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, 3); __PYX_ERR(3, 1231, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLENGULFING") < 0)) __PYX_ERR(3, 1231, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1231, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1231, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1231, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1231, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1231, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_428stream_CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_428stream_CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLENGULFING", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1259, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLENGULFING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR[] = " CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\n    Evening Doji Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR = {"stream_CDLEVENINGDOJISTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLEVENINGDOJISTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, 1); __PYX_ERR(3, 1267, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, 2); __PYX_ERR(3, 1267, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, 3); __PYX_ERR(3, 1267, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLEVENINGDOJISTAR") < 0)) __PYX_ERR(3, 1267, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 1267, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.3);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1267, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1267, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1267, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1267, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1267, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLEVENINGDOJISTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1291, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1297, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLEVENINGDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_433stream_CDLEVENINGSTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_432stream_CDLEVENINGSTAR[] = " CDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\n    Evening Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_433stream_CDLEVENINGSTAR = {"stream_CDLEVENINGSTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_433stream_CDLEVENINGSTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_432stream_CDLEVENINGSTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_433stream_CDLEVENINGSTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLEVENINGSTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, 1); __PYX_ERR(3, 1305, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, 2); __PYX_ERR(3, 1305, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, 3); __PYX_ERR(3, 1305, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLEVENINGSTAR") < 0)) __PYX_ERR(3, 1305, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 1305, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.3);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1305, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1305, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1305, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1305, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1305, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_432stream_CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_432stream_CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLEVENINGSTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1335, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLEVENINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_434stream_CDLGAPSIDESIDEWHITE[] = " CDLGAPSIDESIDEWHITE(open, high, low, close)\n\n    Up/Down-gap side-by-side white lines (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE = {"stream_CDLGAPSIDESIDEWHITE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_434stream_CDLGAPSIDESIDEWHITE};
static PyObject *__pyx_pw_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLGAPSIDESIDEWHITE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, 1); __PYX_ERR(3, 1343, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, 2); __PYX_ERR(3, 1343, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, 3); __PYX_ERR(3, 1343, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLGAPSIDESIDEWHITE") < 0)) __PYX_ERR(3, 1343, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1343, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1343, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1343, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1343, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1343, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_434stream_CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_434stream_CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLGAPSIDESIDEWHITE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __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;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1371, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1375, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI[] = " CDLGRAVESTONEDOJI(open, high, low, close)\n\n    Gravestone Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI = {"stream_CDLGRAVESTONEDOJI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI};
static PyObject *__pyx_pw_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLGRAVESTONEDOJI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, 1); __PYX_ERR(3, 1379, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, 2); __PYX_ERR(3, 1379, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, 3); __PYX_ERR(3, 1379, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLGRAVESTONEDOJI") < 0)) __PYX_ERR(3, 1379, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1379, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1379, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1379, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1379, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1379, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLGRAVESTONEDOJI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __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;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1407, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLGRAVESTONEDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_439stream_CDLHAMMER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_438stream_CDLHAMMER[] = " CDLHAMMER(open, high, low, close)\n\n    Hammer (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_439stream_CDLHAMMER = {"stream_CDLHAMMER", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_439stream_CDLHAMMER, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_438stream_CDLHAMMER};
static PyObject *__pyx_pw_5talib_7_ta_lib_439stream_CDLHAMMER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLHAMMER (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, 1); __PYX_ERR(3, 1415, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, 2); __PYX_ERR(3, 1415, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, 3); __PYX_ERR(3, 1415, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLHAMMER") < 0)) __PYX_ERR(3, 1415, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1415, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1415, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1415, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1415, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1415, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_438stream_CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_438stream_CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLHAMMER", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1443, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLHAMMER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1446, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_441stream_CDLHANGINGMAN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_440stream_CDLHANGINGMAN[] = " CDLHANGINGMAN(open, high, low, close)\n\n    Hanging Man (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_441stream_CDLHANGINGMAN = {"stream_CDLHANGINGMAN", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_441stream_CDLHANGINGMAN, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_440stream_CDLHANGINGMAN};
static PyObject *__pyx_pw_5talib_7_ta_lib_441stream_CDLHANGINGMAN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLHANGINGMAN (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, 1); __PYX_ERR(3, 1451, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, 2); __PYX_ERR(3, 1451, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, 3); __PYX_ERR(3, 1451, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLHANGINGMAN") < 0)) __PYX_ERR(3, 1451, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1451, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1451, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1451, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1451, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1451, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_440stream_CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_440stream_CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLHANGINGMAN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1479, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLHANGINGMAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_443stream_CDLHARAMI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_442stream_CDLHARAMI[] = " CDLHARAMI(open, high, low, close)\n\n    Harami Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_443stream_CDLHARAMI = {"stream_CDLHARAMI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_443stream_CDLHARAMI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_442stream_CDLHARAMI};
static PyObject *__pyx_pw_5talib_7_ta_lib_443stream_CDLHARAMI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLHARAMI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, 1); __PYX_ERR(3, 1487, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, 2); __PYX_ERR(3, 1487, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, 3); __PYX_ERR(3, 1487, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLHARAMI") < 0)) __PYX_ERR(3, 1487, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1487, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1487, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1487, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1487, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1487, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_442stream_CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLHARAMI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1515, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLHARAMI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_445stream_CDLHARAMICROSS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_444stream_CDLHARAMICROSS[] = " CDLHARAMICROSS(open, high, low, close)\n\n    Harami Cross Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_445stream_CDLHARAMICROSS = {"stream_CDLHARAMICROSS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_445stream_CDLHARAMICROSS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_444stream_CDLHARAMICROSS};
static PyObject *__pyx_pw_5talib_7_ta_lib_445stream_CDLHARAMICROSS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLHARAMICROSS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, 1); __PYX_ERR(3, 1523, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, 2); __PYX_ERR(3, 1523, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, 3); __PYX_ERR(3, 1523, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLHARAMICROSS") < 0)) __PYX_ERR(3, 1523, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1523, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1523, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1523, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1523, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1523, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_444stream_CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLHARAMICROSS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1551, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLHARAMICROSS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_447stream_CDLHIGHWAVE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_446stream_CDLHIGHWAVE[] = " CDLHIGHWAVE(open, high, low, close)\n\n    High-Wave Candle (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_447stream_CDLHIGHWAVE = {"stream_CDLHIGHWAVE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_447stream_CDLHIGHWAVE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_446stream_CDLHIGHWAVE};
static PyObject *__pyx_pw_5talib_7_ta_lib_447stream_CDLHIGHWAVE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLHIGHWAVE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, 1); __PYX_ERR(3, 1559, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, 2); __PYX_ERR(3, 1559, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, 3); __PYX_ERR(3, 1559, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLHIGHWAVE") < 0)) __PYX_ERR(3, 1559, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1559, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1559, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1559, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1559, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1559, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_446stream_CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLHIGHWAVE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1581, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1587, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLHIGHWAVE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_449stream_CDLHIKKAKE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_448stream_CDLHIKKAKE[] = " CDLHIKKAKE(open, high, low, close)\n\n    Hikkake Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_449stream_CDLHIKKAKE = {"stream_CDLHIKKAKE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_449stream_CDLHIKKAKE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_448stream_CDLHIKKAKE};
static PyObject *__pyx_pw_5talib_7_ta_lib_449stream_CDLHIKKAKE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLHIKKAKE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, 1); __PYX_ERR(3, 1595, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, 2); __PYX_ERR(3, 1595, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, 3); __PYX_ERR(3, 1595, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLHIKKAKE") < 0)) __PYX_ERR(3, 1595, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1595, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1595, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1595, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1595, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1595, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_448stream_CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLHIKKAKE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1623, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLHIKKAKE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD[] = " CDLHIKKAKEMOD(open, high, low, close)\n\n    Modified Hikkake Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD = {"stream_CDLHIKKAKEMOD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD};
static PyObject *__pyx_pw_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLHIKKAKEMOD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, 1); __PYX_ERR(3, 1631, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, 2); __PYX_ERR(3, 1631, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, 3); __PYX_ERR(3, 1631, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLHIKKAKEMOD") < 0)) __PYX_ERR(3, 1631, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1631, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1631, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1631, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1631, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1631, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLHIKKAKEMOD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1653, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1659, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLHIKKAKEMOD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON[] = " CDLHOMINGPIGEON(open, high, low, close)\n\n    Homing Pigeon (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON = {"stream_CDLHOMINGPIGEON", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON};
static PyObject *__pyx_pw_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLHOMINGPIGEON (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, 1); __PYX_ERR(3, 1667, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, 2); __PYX_ERR(3, 1667, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, 3); __PYX_ERR(3, 1667, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLHOMINGPIGEON") < 0)) __PYX_ERR(3, 1667, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1667, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1667, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1667, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1667, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1667, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLHOMINGPIGEON", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1689, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __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;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1695, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLHOMINGPIGEON((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS[] = " CDLIDENTICAL3CROWS(open, high, low, close)\n\n    Identical Three Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS = {"stream_CDLIDENTICAL3CROWS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS};
static PyObject *__pyx_pw_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLIDENTICAL3CROWS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, 1); __PYX_ERR(3, 1703, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, 2); __PYX_ERR(3, 1703, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, 3); __PYX_ERR(3, 1703, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLIDENTICAL3CROWS") < 0)) __PYX_ERR(3, 1703, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1703, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1703, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1703, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1703, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1703, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLIDENTICAL3CROWS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1727, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1731, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLIDENTICAL3CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_457stream_CDLINNECK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_456stream_CDLINNECK[] = " CDLINNECK(open, high, low, close)\n\n    In-Neck Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_457stream_CDLINNECK = {"stream_CDLINNECK", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_457stream_CDLINNECK, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_456stream_CDLINNECK};
static PyObject *__pyx_pw_5talib_7_ta_lib_457stream_CDLINNECK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLINNECK (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, 1); __PYX_ERR(3, 1739, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, 2); __PYX_ERR(3, 1739, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, 3); __PYX_ERR(3, 1739, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLINNECK") < 0)) __PYX_ERR(3, 1739, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1739, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1739, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1739, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1739, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1739, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_456stream_CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLINNECK", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1761, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1763, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1767, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLINNECK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER[] = " CDLINVERTEDHAMMER(open, high, low, close)\n\n    Inverted Hammer (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER = {"stream_CDLINVERTEDHAMMER", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER};
static PyObject *__pyx_pw_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLINVERTEDHAMMER (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, 1); __PYX_ERR(3, 1775, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, 2); __PYX_ERR(3, 1775, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, 3); __PYX_ERR(3, 1775, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLINVERTEDHAMMER") < 0)) __PYX_ERR(3, 1775, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1775, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1775, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1775, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1775, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1775, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLINVERTEDHAMMER", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1799, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1803, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLINVERTEDHAMMER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_461stream_CDLKICKING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_460stream_CDLKICKING[] = " CDLKICKING(open, high, low, close)\n\n    Kicking (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_461stream_CDLKICKING = {"stream_CDLKICKING", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_461stream_CDLKICKING, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_460stream_CDLKICKING};
static PyObject *__pyx_pw_5talib_7_ta_lib_461stream_CDLKICKING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLKICKING (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, 1); __PYX_ERR(3, 1811, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, 2); __PYX_ERR(3, 1811, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, 3); __PYX_ERR(3, 1811, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLKICKING") < 0)) __PYX_ERR(3, 1811, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1811, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1811, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1811, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1811, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1811, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_460stream_CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLKICKING", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1839, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLKICKING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH[] = " CDLKICKINGBYLENGTH(open, high, low, close)\n\n    Kicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH = {"stream_CDLKICKINGBYLENGTH", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH};
static PyObject *__pyx_pw_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLKICKINGBYLENGTH (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, 1); __PYX_ERR(3, 1847, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, 2); __PYX_ERR(3, 1847, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, 3); __PYX_ERR(3, 1847, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLKICKINGBYLENGTH") < 0)) __PYX_ERR(3, 1847, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1847, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1847, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1847, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1847, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1847, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLKICKINGBYLENGTH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1871, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1875, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLKICKINGBYLENGTH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM[] = " CDLLADDERBOTTOM(open, high, low, close)\n\n    Ladder Bottom (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM = {"stream_CDLLADDERBOTTOM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM};
static PyObject *__pyx_pw_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLLADDERBOTTOM (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, 1); __PYX_ERR(3, 1883, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, 2); __PYX_ERR(3, 1883, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, 3); __PYX_ERR(3, 1883, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLLADDERBOTTOM") < 0)) __PYX_ERR(3, 1883, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1883, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1883, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1883, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1883, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1883, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLLADDERBOTTOM", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1903, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1911, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLLADDERBOTTOM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI[] = " CDLLONGLEGGEDDOJI(open, high, low, close)\n\n    Long Legged Doji (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI = {"stream_CDLLONGLEGGEDDOJI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI};
static PyObject *__pyx_pw_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLLONGLEGGEDDOJI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, 1); __PYX_ERR(3, 1919, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, 2); __PYX_ERR(3, 1919, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, 3); __PYX_ERR(3, 1919, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLLONGLEGGEDDOJI") < 0)) __PYX_ERR(3, 1919, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1919, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1919, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1919, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1919, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1919, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLLONGLEGGEDDOJI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1947, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_469stream_CDLLONGLINE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_468stream_CDLLONGLINE[] = " CDLLONGLINE(open, high, low, close)\n\n    Long Line Candle (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_469stream_CDLLONGLINE = {"stream_CDLLONGLINE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_469stream_CDLLONGLINE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_468stream_CDLLONGLINE};
static PyObject *__pyx_pw_5talib_7_ta_lib_469stream_CDLLONGLINE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLLONGLINE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, 1); __PYX_ERR(3, 1955, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, 2); __PYX_ERR(3, 1955, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, 3); __PYX_ERR(3, 1955, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLLONGLINE") < 0)) __PYX_ERR(3, 1955, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1955, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1955, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1955, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1955, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1955, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_468stream_CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLLONGLINE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __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;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 1983, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLLONGLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_471stream_CDLMARUBOZU(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_470stream_CDLMARUBOZU[] = " CDLMARUBOZU(open, high, low, close)\n\n    Marubozu (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_471stream_CDLMARUBOZU = {"stream_CDLMARUBOZU", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_471stream_CDLMARUBOZU, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_470stream_CDLMARUBOZU};
static PyObject *__pyx_pw_5talib_7_ta_lib_471stream_CDLMARUBOZU(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLMARUBOZU (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, 1); __PYX_ERR(3, 1991, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, 2); __PYX_ERR(3, 1991, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, 3); __PYX_ERR(3, 1991, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLMARUBOZU") < 0)) __PYX_ERR(3, 1991, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 1991, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 1991, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 1991, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 1991, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 1991, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_470stream_CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLMARUBOZU", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2011, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2015, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2019, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLMARUBOZU((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_473stream_CDLMATCHINGLOW(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_472stream_CDLMATCHINGLOW[] = " CDLMATCHINGLOW(open, high, low, close)\n\n    Matching Low (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_473stream_CDLMATCHINGLOW = {"stream_CDLMATCHINGLOW", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_473stream_CDLMATCHINGLOW, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_472stream_CDLMATCHINGLOW};
static PyObject *__pyx_pw_5talib_7_ta_lib_473stream_CDLMATCHINGLOW(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLMATCHINGLOW (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, 1); __PYX_ERR(3, 2027, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, 2); __PYX_ERR(3, 2027, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, 3); __PYX_ERR(3, 2027, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLMATCHINGLOW") < 0)) __PYX_ERR(3, 2027, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2027, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2027, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2027, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2027, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2027, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_472stream_CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLMATCHINGLOW", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2051, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2055, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLMATCHINGLOW((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2058, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_475stream_CDLMATHOLD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_474stream_CDLMATHOLD[] = " CDLMATHOLD(open, high, low, close[, penetration=?])\n\n    Mat Hold (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.5\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_475stream_CDLMATHOLD = {"stream_CDLMATHOLD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_475stream_CDLMATHOLD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_474stream_CDLMATHOLD};
static PyObject *__pyx_pw_5talib_7_ta_lib_475stream_CDLMATHOLD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLMATHOLD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, 1); __PYX_ERR(3, 2063, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, 2); __PYX_ERR(3, 2063, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, 3); __PYX_ERR(3, 2063, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLMATHOLD") < 0)) __PYX_ERR(3, 2063, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2063, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.5);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2063, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2063, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2063, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2063, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2063, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_474stream_CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLMATHOLD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2087, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2089, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2091, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2093, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLMATHOLD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_476stream_CDLMORNINGDOJISTAR[] = " CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\n    Morning Doji Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR = {"stream_CDLMORNINGDOJISTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_476stream_CDLMORNINGDOJISTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLMORNINGDOJISTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, 1); __PYX_ERR(3, 2101, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, 2); __PYX_ERR(3, 2101, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, 3); __PYX_ERR(3, 2101, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLMORNINGDOJISTAR") < 0)) __PYX_ERR(3, 2101, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2101, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.3);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2101, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2101, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2101, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2101, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2101, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_476stream_CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLMORNINGDOJISTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2131, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLMORNINGDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_479stream_CDLMORNINGSTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_478stream_CDLMORNINGSTAR[] = " CDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\n    Morning Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Parameters:\n        penetration: 0.3\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_479stream_CDLMORNINGSTAR = {"stream_CDLMORNINGSTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_479stream_CDLMORNINGSTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_478stream_CDLMORNINGSTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_479stream_CDLMORNINGSTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  double __pyx_v_penetration;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLMORNINGSTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, 1); __PYX_ERR(3, 2139, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, 2); __PYX_ERR(3, 2139, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, 3); __PYX_ERR(3, 2139, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_penetration);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLMORNINGSTAR") < 0)) __PYX_ERR(3, 2139, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_penetration = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2139, __pyx_L3_error)
    } else {
      __pyx_v_penetration = ((double)0.3);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2139, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2139, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2139, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2139, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2139, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_478stream_CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLMORNINGSTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2169, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLMORNINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_481stream_CDLONNECK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_480stream_CDLONNECK[] = " CDLONNECK(open, high, low, close)\n\n    On-Neck Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_481stream_CDLONNECK = {"stream_CDLONNECK", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_481stream_CDLONNECK, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_480stream_CDLONNECK};
static PyObject *__pyx_pw_5talib_7_ta_lib_481stream_CDLONNECK(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLONNECK (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, 1); __PYX_ERR(3, 2177, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, 2); __PYX_ERR(3, 2177, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, 3); __PYX_ERR(3, 2177, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLONNECK") < 0)) __PYX_ERR(3, 2177, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2177, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2177, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2177, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2177, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2177, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_480stream_CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLONNECK", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2205, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLONNECK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_483stream_CDLPIERCING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_482stream_CDLPIERCING[] = " CDLPIERCING(open, high, low, close)\n\n    Piercing Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_483stream_CDLPIERCING = {"stream_CDLPIERCING", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_483stream_CDLPIERCING, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_482stream_CDLPIERCING};
static PyObject *__pyx_pw_5talib_7_ta_lib_483stream_CDLPIERCING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLPIERCING (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, 1); __PYX_ERR(3, 2213, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, 2); __PYX_ERR(3, 2213, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, 3); __PYX_ERR(3, 2213, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLPIERCING") < 0)) __PYX_ERR(3, 2213, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2213, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2213, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2213, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2213, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2213, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_482stream_CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLPIERCING", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2241, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLPIERCING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN[] = " CDLRICKSHAWMAN(open, high, low, close)\n\n    Rickshaw Man (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN = {"stream_CDLRICKSHAWMAN", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN};
static PyObject *__pyx_pw_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLRICKSHAWMAN (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, 1); __PYX_ERR(3, 2249, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, 2); __PYX_ERR(3, 2249, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, 3); __PYX_ERR(3, 2249, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLRICKSHAWMAN") < 0)) __PYX_ERR(3, 2249, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2249, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2249, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2249, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2249, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2249, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLRICKSHAWMAN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __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;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2277, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLRICKSHAWMAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS[] = " CDLRISEFALL3METHODS(open, high, low, close)\n\n    Rising/Falling Three Methods (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS = {"stream_CDLRISEFALL3METHODS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS};
static PyObject *__pyx_pw_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLRISEFALL3METHODS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, 1); __PYX_ERR(3, 2285, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, 2); __PYX_ERR(3, 2285, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, 3); __PYX_ERR(3, 2285, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLRISEFALL3METHODS") < 0)) __PYX_ERR(3, 2285, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2285, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2285, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2285, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2285, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2285, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLRISEFALL3METHODS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2313, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLRISEFALL3METHODS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES[] = " CDLSEPARATINGLINES(open, high, low, close)\n\n    Separating Lines (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES = {"stream_CDLSEPARATINGLINES", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES};
static PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLSEPARATINGLINES (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, 1); __PYX_ERR(3, 2321, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, 2); __PYX_ERR(3, 2321, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, 3); __PYX_ERR(3, 2321, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLSEPARATINGLINES") < 0)) __PYX_ERR(3, 2321, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2321, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2321, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2321, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2321, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2321, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLSEPARATINGLINES", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2349, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLSEPARATINGLINES((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR[] = " CDLSHOOTINGSTAR(open, high, low, close)\n\n    Shooting Star (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR = {"stream_CDLSHOOTINGSTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLSHOOTINGSTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, 1); __PYX_ERR(3, 2357, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, 2); __PYX_ERR(3, 2357, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, 3); __PYX_ERR(3, 2357, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLSHOOTINGSTAR") < 0)) __PYX_ERR(3, 2357, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2357, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2357, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2357, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2357, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2357, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLSHOOTINGSTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2385, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLSHOOTINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDLSHORTLINE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_492stream_CDLSHORTLINE[] = " CDLSHORTLINE(open, high, low, close)\n\n    Short Line Candle (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_493stream_CDLSHORTLINE = {"stream_CDLSHORTLINE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_493stream_CDLSHORTLINE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_492stream_CDLSHORTLINE};
static PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDLSHORTLINE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLSHORTLINE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, 1); __PYX_ERR(3, 2393, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, 2); __PYX_ERR(3, 2393, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, 3); __PYX_ERR(3, 2393, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLSHORTLINE") < 0)) __PYX_ERR(3, 2393, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2393, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2393, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2393, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2393, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2393, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_492stream_CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLSHORTLINE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2421, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLSHORTLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDLSPINNINGTOP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_494stream_CDLSPINNINGTOP[] = " CDLSPINNINGTOP(open, high, low, close)\n\n    Spinning Top (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_495stream_CDLSPINNINGTOP = {"stream_CDLSPINNINGTOP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_495stream_CDLSPINNINGTOP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_494stream_CDLSPINNINGTOP};
static PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDLSPINNINGTOP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLSPINNINGTOP (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, 1); __PYX_ERR(3, 2429, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, 2); __PYX_ERR(3, 2429, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, 3); __PYX_ERR(3, 2429, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLSPINNINGTOP") < 0)) __PYX_ERR(3, 2429, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2429, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2429, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2429, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2429, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2429, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_494stream_CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLSPINNINGTOP", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2457, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLSPINNINGTOP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN[] = " CDLSTALLEDPATTERN(open, high, low, close)\n\n    Stalled Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN = {"stream_CDLSTALLEDPATTERN", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN};
static PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLSTALLEDPATTERN (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, 1); __PYX_ERR(3, 2465, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, 2); __PYX_ERR(3, 2465, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, 3); __PYX_ERR(3, 2465, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLSTALLEDPATTERN") < 0)) __PYX_ERR(3, 2465, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2465, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2465, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2465, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2465, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2465, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLSTALLEDPATTERN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2493, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLSTALLEDPATTERN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH[] = " CDLSTICKSANDWICH(open, high, low, close)\n\n    Stick Sandwich (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH = {"stream_CDLSTICKSANDWICH", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH};
static PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLSTICKSANDWICH (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, 1); __PYX_ERR(3, 2501, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, 2); __PYX_ERR(3, 2501, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, 3); __PYX_ERR(3, 2501, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLSTICKSANDWICH") < 0)) __PYX_ERR(3, 2501, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2501, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2501, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2501, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2501, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2501, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLSTICKSANDWICH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2529, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLSTICKSANDWICH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2532, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDLTAKURI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_500stream_CDLTAKURI[] = " CDLTAKURI(open, high, low, close)\n\n    Takuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_501stream_CDLTAKURI = {"stream_CDLTAKURI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_501stream_CDLTAKURI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_500stream_CDLTAKURI};
static PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDLTAKURI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLTAKURI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, 1); __PYX_ERR(3, 2537, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, 2); __PYX_ERR(3, 2537, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, 3); __PYX_ERR(3, 2537, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLTAKURI") < 0)) __PYX_ERR(3, 2537, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2537, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2537, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2537, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2537, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2537, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_500stream_CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLTAKURI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __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;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2565, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLTAKURI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2568, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDLTASUKIGAP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_502stream_CDLTASUKIGAP[] = " CDLTASUKIGAP(open, high, low, close)\n\n    Tasuki Gap (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_503stream_CDLTASUKIGAP = {"stream_CDLTASUKIGAP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_503stream_CDLTASUKIGAP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_502stream_CDLTASUKIGAP};
static PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDLTASUKIGAP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLTASUKIGAP (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, 1); __PYX_ERR(3, 2573, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, 2); __PYX_ERR(3, 2573, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, 3); __PYX_ERR(3, 2573, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLTASUKIGAP") < 0)) __PYX_ERR(3, 2573, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2573, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2573, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2573, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2573, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2573, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_502stream_CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLTASUKIGAP", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2597, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2601, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLTASUKIGAP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLTHRUSTING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_504stream_CDLTHRUSTING[] = " CDLTHRUSTING(open, high, low, close)\n\n    Thrusting Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_505stream_CDLTHRUSTING = {"stream_CDLTHRUSTING", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_505stream_CDLTHRUSTING, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_504stream_CDLTHRUSTING};
static PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLTHRUSTING(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLTHRUSTING (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, 1); __PYX_ERR(3, 2609, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, 2); __PYX_ERR(3, 2609, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, 3); __PYX_ERR(3, 2609, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLTHRUSTING") < 0)) __PYX_ERR(3, 2609, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2609, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2609, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2609, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2609, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2609, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_504stream_CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLTHRUSTING", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2637, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLTHRUSTING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2640, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLTRISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_506stream_CDLTRISTAR[] = " CDLTRISTAR(open, high, low, close)\n\n    Tristar Pattern (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_507stream_CDLTRISTAR = {"stream_CDLTRISTAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_507stream_CDLTRISTAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_506stream_CDLTRISTAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLTRISTAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLTRISTAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, 1); __PYX_ERR(3, 2645, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, 2); __PYX_ERR(3, 2645, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, 3); __PYX_ERR(3, 2645, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLTRISTAR") < 0)) __PYX_ERR(3, 2645, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2645, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2645, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2645, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2645, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2645, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_506stream_CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLTRISTAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2665, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2673, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLTRISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER[] = " CDLUNIQUE3RIVER(open, high, low, close)\n\n    Unique 3 River (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER = {"stream_CDLUNIQUE3RIVER", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER};
static PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLUNIQUE3RIVER (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, 1); __PYX_ERR(3, 2681, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, 2); __PYX_ERR(3, 2681, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, 3); __PYX_ERR(3, 2681, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLUNIQUE3RIVER") < 0)) __PYX_ERR(3, 2681, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2681, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2681, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2681, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2681, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2681, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLUNIQUE3RIVER", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2709, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLUNIQUE3RIVER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2713, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS[] = " CDLUPSIDEGAP2CROWS(open, high, low, close)\n\n    Upside Gap Two Crows (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS = {"stream_CDLUPSIDEGAP2CROWS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS};
static PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLUPSIDEGAP2CROWS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, 1); __PYX_ERR(3, 2717, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, 2); __PYX_ERR(3, 2717, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, 3); __PYX_ERR(3, 2717, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLUPSIDEGAP2CROWS") < 0)) __PYX_ERR(3, 2717, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2717, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2717, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2717, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2717, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2717, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLUPSIDEGAP2CROWS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2745, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS[] = " CDLXSIDEGAP3METHODS(open, high, low, close)\n\n    Upside/Downside Gap Three Methods (Pattern Recognition)\n\n    Inputs:\n        prices: ['open', 'high', 'low', 'close']\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS = {"stream_CDLXSIDEGAP3METHODS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS};
static PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_open = 0;
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CDLXSIDEGAP3METHODS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_open)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, 1); __PYX_ERR(3, 2753, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, 2); __PYX_ERR(3, 2753, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, 3); __PYX_ERR(3, 2753, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CDLXSIDEGAP3METHODS") < 0)) __PYX_ERR(3, 2753, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_open = ((PyArrayObject *)values[0]);
    __pyx_v_high = ((PyArrayObject *)values[1]);
    __pyx_v_low = ((PyArrayObject *)values[2]);
    __pyx_v_close = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2753, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(3, 2753, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2753, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2753, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2753, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_open_data;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CDLXSIDEGAP3METHODS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_open);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_open_data = ((double *)__pyx_v_open->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2779, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2781, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_open);
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CEIL(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_514stream_CEIL[] = " CEIL(real)\n\n    Vector Ceil (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_515stream_CEIL = {"stream_CEIL", (PyCFunction)__pyx_pw_5talib_7_ta_lib_515stream_CEIL, METH_O, __pyx_doc_5talib_7_ta_lib_514stream_CEIL};
static PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CEIL(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CEIL (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 2789, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_514stream_CEIL(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CEIL", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_CEIL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2811, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_517stream_CMO(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_516stream_CMO[] = " CMO(real[, timeperiod=?])\n\n    Chande Momentum Oscillator (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_517stream_CMO = {"stream_CMO", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_517stream_CMO, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_516stream_CMO};
static PyObject *__pyx_pw_5talib_7_ta_lib_517stream_CMO(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CMO (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CMO") < 0)) __PYX_ERR(3, 2816, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2816, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CMO", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2816, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CMO", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 2816, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_516stream_CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_516stream_CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CMO", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_CMO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CMO", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_519stream_CORREL(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_518stream_CORREL[] = " CORREL(real0, real1[, timeperiod=?])\n\n    Pearson's Correlation Coefficient (r) (Statistic Functions)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_519stream_CORREL = {"stream_CORREL", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_519stream_CORREL, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_518stream_CORREL};
static PyObject *__pyx_pw_5talib_7_ta_lib_519stream_CORREL(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real0 = 0;
  PyArrayObject *__pyx_v_real1 = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_CORREL (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_CORREL", 0, 2, 3, 1); __PYX_ERR(3, 2845, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_CORREL") < 0)) __PYX_ERR(3, 2845, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real0 = ((PyArrayObject *)values[0]);
    __pyx_v_real1 = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2845, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_CORREL", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2845, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(3, 2845, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(3, 2845, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_518stream_CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real0_data;
  double *__pyx_v_real1_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_CORREL", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real0);
  __Pyx_INCREF((PyObject *)__pyx_v_real1);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real0_data = ((double *)__pyx_v_real0->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real1_data = ((double *)__pyx_v_real1->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2870, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_CORREL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real0);
  __Pyx_XDECREF((PyObject *)__pyx_v_real1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_521stream_COS(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_520stream_COS[] = " COS(real)\n\n    Vector Trigonometric Cos (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_521stream_COS = {"stream_COS", (PyCFunction)__pyx_pw_5talib_7_ta_lib_521stream_COS, METH_O, __pyx_doc_5talib_7_ta_lib_520stream_COS};
static PyObject *__pyx_pw_5talib_7_ta_lib_521stream_COS(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_COS (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 2878, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_520stream_COS(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_COS", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_COS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2900, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2901, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_COS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_523stream_COSH(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_522stream_COSH[] = " COSH(real)\n\n    Vector Trigonometric Cosh (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_523stream_COSH = {"stream_COSH", (PyCFunction)__pyx_pw_5talib_7_ta_lib_523stream_COSH, METH_O, __pyx_doc_5talib_7_ta_lib_522stream_COSH};
static PyObject *__pyx_pw_5talib_7_ta_lib_523stream_COSH(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_COSH (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 2905, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_522stream_COSH(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_COSH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_COSH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_COSH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_525stream_DEMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_524stream_DEMA[] = " DEMA(real[, timeperiod=?])\n\n    Double Exponential Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_525stream_DEMA = {"stream_DEMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_525stream_DEMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_524stream_DEMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_525stream_DEMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_DEMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_DEMA") < 0)) __PYX_ERR(3, 2932, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2932, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_DEMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2932, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 2932, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_524stream_DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_DEMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_DEMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2957, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_527stream_DIV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_526stream_DIV[] = " DIV(real0, real1)\n\n    Vector Arithmetic Div (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_527stream_DIV = {"stream_DIV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_527stream_DIV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_526stream_DIV};
static PyObject *__pyx_pw_5talib_7_ta_lib_527stream_DIV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real0 = 0;
  PyArrayObject *__pyx_v_real1 = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_DIV (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_DIV", 1, 2, 2, 1); __PYX_ERR(3, 2961, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_DIV") < 0)) __PYX_ERR(3, 2961, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_real0 = ((PyArrayObject *)values[0]);
    __pyx_v_real1 = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_DIV", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2961, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_DIV", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(3, 2961, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(3, 2961, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_526stream_DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real0_data;
  double *__pyx_v_real1_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_DIV", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real0);
  __Pyx_INCREF((PyObject *)__pyx_v_real1);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real0_data = ((double *)__pyx_v_real0->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real1_data = ((double *)__pyx_v_real1->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2984, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_DIV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_DIV", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real0);
  __Pyx_XDECREF((PyObject *)__pyx_v_real1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_529stream_DX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_528stream_DX[] = " DX(high, low, close[, timeperiod=?])\n\n    Directional Movement Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_529stream_DX = {"stream_DX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_529stream_DX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_528stream_DX};
static PyObject *__pyx_pw_5talib_7_ta_lib_529stream_DX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_DX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, 1); __PYX_ERR(3, 2992, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, 2); __PYX_ERR(3, 2992, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_DX") < 0)) __PYX_ERR(3, 2992, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2992, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 2992, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_DX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 2992, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 2992, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 2992, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_528stream_DX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_DX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3015, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 3019, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_DX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_DX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_531stream_EMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_530stream_EMA[] = " EMA(real[, timeperiod=?])\n\n    Exponential Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_531stream_EMA = {"stream_EMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_531stream_EMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_530stream_EMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_531stream_EMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_EMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_EMA") < 0)) __PYX_ERR(3, 3027, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3027, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_EMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3027, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_EMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3027, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_530stream_EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_530stream_EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_EMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_EMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3051, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_EMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_533stream_EXP(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_532stream_EXP[] = " EXP(real)\n\n    Vector Arithmetic Exp (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_533stream_EXP = {"stream_EXP", (PyCFunction)__pyx_pw_5talib_7_ta_lib_533stream_EXP, METH_O, __pyx_doc_5talib_7_ta_lib_532stream_EXP};
static PyObject *__pyx_pw_5talib_7_ta_lib_533stream_EXP(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_EXP (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3056, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_532stream_EXP(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_EXP", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_EXP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3078, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_EXP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_535stream_FLOOR(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_534stream_FLOOR[] = " FLOOR(real)\n\n    Vector Floor (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_535stream_FLOOR = {"stream_FLOOR", (PyCFunction)__pyx_pw_5talib_7_ta_lib_535stream_FLOOR, METH_O, __pyx_doc_5talib_7_ta_lib_534stream_FLOOR};
static PyObject *__pyx_pw_5talib_7_ta_lib_535stream_FLOOR(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_FLOOR (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3083, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_534stream_FLOOR(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_FLOOR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_FLOOR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_537stream_HT_DCPERIOD(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_536stream_HT_DCPERIOD[] = " HT_DCPERIOD(real)\n\n    Hilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_537stream_HT_DCPERIOD = {"stream_HT_DCPERIOD", (PyCFunction)__pyx_pw_5talib_7_ta_lib_537stream_HT_DCPERIOD, METH_O, __pyx_doc_5talib_7_ta_lib_536stream_HT_DCPERIOD};
static PyObject *__pyx_pw_5talib_7_ta_lib_537stream_HT_DCPERIOD(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_HT_DCPERIOD (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3110, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_536stream_HT_DCPERIOD(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_HT_DCPERIOD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_HT_DCPERIOD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_539stream_HT_DCPHASE(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_538stream_HT_DCPHASE[] = " HT_DCPHASE(real)\n\n    Hilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_539stream_HT_DCPHASE = {"stream_HT_DCPHASE", (PyCFunction)__pyx_pw_5talib_7_ta_lib_539stream_HT_DCPHASE, METH_O, __pyx_doc_5talib_7_ta_lib_538stream_HT_DCPHASE};
static PyObject *__pyx_pw_5talib_7_ta_lib_539stream_HT_DCPHASE(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_HT_DCPHASE (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3137, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_538stream_HT_DCPHASE(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_HT_DCPHASE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_HT_DCPHASE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_541stream_HT_PHASOR(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_540stream_HT_PHASOR[] = " HT_PHASOR(real)\n\n    Hilbert Transform - Phasor Components (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        inphase\n        quadrature\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_541stream_HT_PHASOR = {"stream_HT_PHASOR", (PyCFunction)__pyx_pw_5talib_7_ta_lib_541stream_HT_PHASOR, METH_O, __pyx_doc_5talib_7_ta_lib_540stream_HT_PHASOR};
static PyObject *__pyx_pw_5talib_7_ta_lib_541stream_HT_PHASOR(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_HT_PHASOR (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3164, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_540stream_HT_PHASOR(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outinphase;
  double __pyx_v_outquadrature;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_HT_PHASOR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outinphase = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outquadrature = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_HT_PHASOR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinphase), (&__pyx_v_outquadrature));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.stream_HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_543stream_HT_SINE(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_542stream_HT_SINE[] = " HT_SINE(real)\n\n    Hilbert Transform - SineWave (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        sine\n        leadsine\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_543stream_HT_SINE = {"stream_HT_SINE", (PyCFunction)__pyx_pw_5talib_7_ta_lib_543stream_HT_SINE, METH_O, __pyx_doc_5talib_7_ta_lib_542stream_HT_SINE};
static PyObject *__pyx_pw_5talib_7_ta_lib_543stream_HT_SINE(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_HT_SINE (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3194, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_542stream_HT_SINE(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outsine;
  double __pyx_v_outleadsine;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_HT_SINE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outsine = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outleadsine = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_HT_SINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outsine), (&__pyx_v_outleadsine));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.stream_HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_545stream_HT_TRENDLINE(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_544stream_HT_TRENDLINE[] = " HT_TRENDLINE(real)\n\n    Hilbert Transform - Instantaneous Trendline (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_545stream_HT_TRENDLINE = {"stream_HT_TRENDLINE", (PyCFunction)__pyx_pw_5talib_7_ta_lib_545stream_HT_TRENDLINE, METH_O, __pyx_doc_5talib_7_ta_lib_544stream_HT_TRENDLINE};
static PyObject *__pyx_pw_5talib_7_ta_lib_545stream_HT_TRENDLINE(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_HT_TRENDLINE (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3224, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_544stream_HT_TRENDLINE(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_HT_TRENDLINE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_HT_TRENDLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_547stream_HT_TRENDMODE(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_546stream_HT_TRENDMODE[] = " HT_TRENDMODE(real)\n\n    Hilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_547stream_HT_TRENDMODE = {"stream_HT_TRENDMODE", (PyCFunction)__pyx_pw_5talib_7_ta_lib_547stream_HT_TRENDMODE, METH_O, __pyx_doc_5talib_7_ta_lib_546stream_HT_TRENDMODE};
static PyObject *__pyx_pw_5talib_7_ta_lib_547stream_HT_TRENDMODE(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_HT_TRENDMODE (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3251, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_546stream_HT_TRENDMODE(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_HT_TRENDMODE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_HT_TRENDMODE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_549stream_KAMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_548stream_KAMA[] = " KAMA(real[, timeperiod=?])\n\n    Kaufman Adaptive Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_549stream_KAMA = {"stream_KAMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_549stream_KAMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_548stream_KAMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_549stream_KAMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_KAMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_KAMA") < 0)) __PYX_ERR(3, 3278, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3278, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_KAMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3278, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3278, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_548stream_KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_KAMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_KAMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_551stream_LINEARREG(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_550stream_LINEARREG[] = " LINEARREG(real[, timeperiod=?])\n\n    Linear Regression (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_551stream_LINEARREG = {"stream_LINEARREG", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_551stream_LINEARREG, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_550stream_LINEARREG};
static PyObject *__pyx_pw_5talib_7_ta_lib_551stream_LINEARREG(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_LINEARREG (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_LINEARREG") < 0)) __PYX_ERR(3, 3307, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3307, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_LINEARREG", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3307, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3307, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_550stream_LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_LINEARREG", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_LINEARREG((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_553stream_LINEARREG_ANGLE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_552stream_LINEARREG_ANGLE[] = " LINEARREG_ANGLE(real[, timeperiod=?])\n\n    Linear Regression Angle (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_553stream_LINEARREG_ANGLE = {"stream_LINEARREG_ANGLE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_553stream_LINEARREG_ANGLE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_552stream_LINEARREG_ANGLE};
static PyObject *__pyx_pw_5talib_7_ta_lib_553stream_LINEARREG_ANGLE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_LINEARREG_ANGLE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_LINEARREG_ANGLE") < 0)) __PYX_ERR(3, 3336, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3336, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_ANGLE", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3336, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3336, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_552stream_LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_LINEARREG_ANGLE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_LINEARREG_ANGLE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT[] = " LINEARREG_INTERCEPT(real[, timeperiod=?])\n\n    Linear Regression Intercept (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT = {"stream_LINEARREG_INTERCEPT", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT};
static PyObject *__pyx_pw_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_LINEARREG_INTERCEPT (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_LINEARREG_INTERCEPT") < 0)) __PYX_ERR(3, 3365, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3365, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_INTERCEPT", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3365, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3365, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_LINEARREG_INTERCEPT", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_LINEARREG_INTERCEPT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_557stream_LINEARREG_SLOPE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_556stream_LINEARREG_SLOPE[] = " LINEARREG_SLOPE(real[, timeperiod=?])\n\n    Linear Regression Slope (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_557stream_LINEARREG_SLOPE = {"stream_LINEARREG_SLOPE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_557stream_LINEARREG_SLOPE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_556stream_LINEARREG_SLOPE};
static PyObject *__pyx_pw_5talib_7_ta_lib_557stream_LINEARREG_SLOPE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_LINEARREG_SLOPE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_LINEARREG_SLOPE") < 0)) __PYX_ERR(3, 3394, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3394, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_SLOPE", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3394, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3394, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_556stream_LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_LINEARREG_SLOPE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_LINEARREG_SLOPE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_559stream_LN(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_558stream_LN[] = " LN(real)\n\n    Vector Log Natural (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_559stream_LN = {"stream_LN", (PyCFunction)__pyx_pw_5talib_7_ta_lib_559stream_LN, METH_O, __pyx_doc_5talib_7_ta_lib_558stream_LN};
static PyObject *__pyx_pw_5talib_7_ta_lib_559stream_LN(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_LN (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3423, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_558stream_LN(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_LN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_LN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3446, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_LN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_561stream_LOG10(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_560stream_LOG10[] = " LOG10(real)\n\n    Vector Log10 (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_561stream_LOG10 = {"stream_LOG10", (PyCFunction)__pyx_pw_5talib_7_ta_lib_561stream_LOG10, METH_O, __pyx_doc_5talib_7_ta_lib_560stream_LOG10};
static PyObject *__pyx_pw_5talib_7_ta_lib_561stream_LOG10(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_LOG10 (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3450, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_560stream_LOG10(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_LOG10", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_LOG10((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_563stream_MA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_562stream_MA[] = " MA(real[, timeperiod=?, matype=?])\n\n    Moving average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_563stream_MA = {"stream_MA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_563stream_MA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_562stream_MA};
static PyObject *__pyx_pw_5talib_7_ta_lib_563stream_MA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_v_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_matype,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matype);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MA") < 0)) __PYX_ERR(3, 3477, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3477, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_matype = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3477, __pyx_L3_error)
    } else {
      __pyx_v_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MA", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3477, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3477, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_562stream_MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_565stream_MACD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_564stream_MACD[] = " MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\n    Moving Average Convergence/Divergence (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        slowperiod: 26\n        signalperiod: 9\n    Outputs:\n        macd\n        macdsignal\n        macdhist\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_565stream_MACD = {"stream_MACD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_565stream_MACD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_564stream_MACD};
static PyObject *__pyx_pw_5talib_7_ta_lib_565stream_MACD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_fastperiod;
  int __pyx_v_slowperiod;
  int __pyx_v_signalperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MACD (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,&__pyx_n_s_signalperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowperiod);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signalperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MACD") < 0)) __PYX_ERR(3, 3507, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3507, __pyx_L3_error)
    } else {
      __pyx_v_fastperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3507, __pyx_L3_error)
    } else {
      __pyx_v_slowperiod = ((int)-2147483648);
    }
    if (values[3]) {
      __pyx_v_signalperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3507, __pyx_L3_error)
    } else {
      __pyx_v_signalperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MACD", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3507, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MACD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3507, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_564stream_MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outmacd;
  double __pyx_v_outmacdsignal;
  double __pyx_v_outmacdhist;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MACD", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3532, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MACD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("talib._ta_lib.stream_MACD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_567stream_MACDEXT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_566stream_MACDEXT[] = " MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\n    MACD with controllable MA type (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        fastmatype: 0\n        slowperiod: 26\n        slowmatype: 0\n        signalperiod: 9\n        signalmatype: 0\n    Outputs:\n        macd\n        macdsignal\n        macdhist\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_567stream_MACDEXT = {"stream_MACDEXT", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_567stream_MACDEXT, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_566stream_MACDEXT};
static PyObject *__pyx_pw_5talib_7_ta_lib_567stream_MACDEXT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_fastperiod;
  int __pyx_v_fastmatype;
  int __pyx_v_slowperiod;
  int __pyx_v_slowmatype;
  int __pyx_v_signalperiod;
  int __pyx_v_signalmatype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MACDEXT (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_fastmatype,&__pyx_n_s_slowperiod,&__pyx_n_s_slowmatype,&__pyx_n_s_signalperiod,&__pyx_n_s_signalmatype,0};
    PyObject* values[7] = {0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastmatype);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowperiod);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowmatype);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signalperiod);
          if (value) { values[5] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signalmatype);
          if (value) { values[6] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MACDEXT") < 0)) __PYX_ERR(3, 3544, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3544, __pyx_L3_error)
    } else {
      __pyx_v_fastperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_fastmatype = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3544, __pyx_L3_error)
    } else {
      __pyx_v_fastmatype = ((int)0);
    }
    if (values[3]) {
      __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3544, __pyx_L3_error)
    } else {
      __pyx_v_slowperiod = ((int)-2147483648);
    }
    if (values[4]) {
      __pyx_v_slowmatype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3544, __pyx_L3_error)
    } else {
      __pyx_v_slowmatype = ((int)0);
    }
    if (values[5]) {
      __pyx_v_signalperiod = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3544, __pyx_L3_error)
    } else {
      __pyx_v_signalperiod = ((int)-2147483648);
    }
    if (values[6]) {
      __pyx_v_signalmatype = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3544, __pyx_L3_error)
    } else {
      __pyx_v_signalmatype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MACDEXT", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3544, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3544, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_566stream_MACDEXT(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outmacd;
  double __pyx_v_outmacdsignal;
  double __pyx_v_outmacdhist;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MACDEXT", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MACDEXT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("talib._ta_lib.stream_MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_569stream_MACDFIX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_568stream_MACDFIX[] = " MACDFIX(real[, signalperiod=?])\n\n    Moving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        signalperiod: 9\n    Outputs:\n        macd\n        macdsignal\n        macdhist\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_569stream_MACDFIX = {"stream_MACDFIX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_569stream_MACDFIX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_568stream_MACDFIX};
static PyObject *__pyx_pw_5talib_7_ta_lib_569stream_MACDFIX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_signalperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MACDFIX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_signalperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signalperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MACDFIX") < 0)) __PYX_ERR(3, 3584, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_signalperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3584, __pyx_L3_error)
    } else {
      __pyx_v_signalperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MACDFIX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3584, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3584, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_568stream_MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outmacd;
  double __pyx_v_outmacdsignal;
  double __pyx_v_outmacdhist;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MACDFIX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MACDFIX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3614, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("talib._ta_lib.stream_MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_571stream_MAMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_570stream_MAMA[] = " MAMA(real[, fastlimit=?, slowlimit=?])\n\n    MESA Adaptive Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastlimit: 0.5\n        slowlimit: 0.05\n    Outputs:\n        mama\n        fama\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_571stream_MAMA = {"stream_MAMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_571stream_MAMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_570stream_MAMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_571stream_MAMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  double __pyx_v_fastlimit;
  double __pyx_v_slowlimit;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MAMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastlimit,&__pyx_n_s_slowlimit,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastlimit);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowlimit);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MAMA") < 0)) __PYX_ERR(3, 3619, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_fastlimit = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3619, __pyx_L3_error)
    } else {
      __pyx_v_fastlimit = ((double)-4e37);
    }
    if (values[2]) {
      __pyx_v_slowlimit = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3619, __pyx_L3_error)
    } else {
      __pyx_v_slowlimit = ((double)-4e37);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MAMA", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3619, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3619, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_570stream_MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outmama;
  double __pyx_v_outfama;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MAMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outmama = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outfama = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MAMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmama), (&__pyx_v_outfama));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.stream_MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_573stream_MAVP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_572stream_MAVP[] = " MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\n    Moving average with variable period (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n        periods: (any ndarray)\n    Parameters:\n        minperiod: 2\n        maxperiod: 30\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_573stream_MAVP = {"stream_MAVP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_573stream_MAVP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_572stream_MAVP};
static PyObject *__pyx_pw_5talib_7_ta_lib_573stream_MAVP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  PyArrayObject *__pyx_v_periods = 0;
  int __pyx_v_minperiod;
  int __pyx_v_maxperiod;
  int __pyx_v_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MAVP (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_periods,&__pyx_n_s_minperiod,&__pyx_n_s_maxperiod,&__pyx_n_s_matype,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_periods)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_MAVP", 0, 2, 5, 1); __PYX_ERR(3, 3652, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_minperiod);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_maxperiod);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matype);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MAVP") < 0)) __PYX_ERR(3, 3652, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    __pyx_v_periods = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_minperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3652, __pyx_L3_error)
    } else {
      __pyx_v_minperiod = ((int)-2147483648);
    }
    if (values[3]) {
      __pyx_v_maxperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3652, __pyx_L3_error)
    } else {
      __pyx_v_maxperiod = ((int)-2147483648);
    }
    if (values[4]) {
      __pyx_v_matype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3652, __pyx_L3_error)
    } else {
      __pyx_v_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MAVP", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3652, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3652, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(3, 3652, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_572stream_MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  double *__pyx_v_periods_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MAVP", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);
  __Pyx_INCREF((PyObject *)__pyx_v_periods);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_periods, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_periods_data = ((double *)__pyx_v_periods->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 3679, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MAVP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_periods_data, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XDECREF((PyObject *)__pyx_v_periods);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_575stream_MAX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_574stream_MAX[] = " MAX(real[, timeperiod=?])\n\n    Highest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_575stream_MAX = {"stream_MAX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_575stream_MAX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_574stream_MAX};
static PyObject *__pyx_pw_5talib_7_ta_lib_575stream_MAX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MAX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MAX") < 0)) __PYX_ERR(3, 3687, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3687, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MAX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3687, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MAX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3687, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_574stream_MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MAX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3706, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MAX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MAX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_577stream_MAXINDEX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_576stream_MAXINDEX[] = " MAXINDEX(real[, timeperiod=?])\n\n    Index of highest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_577stream_MAXINDEX = {"stream_MAXINDEX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_577stream_MAXINDEX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_576stream_MAXINDEX};
static PyObject *__pyx_pw_5talib_7_ta_lib_577stream_MAXINDEX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MAXINDEX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MAXINDEX") < 0)) __PYX_ERR(3, 3716, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3716, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MAXINDEX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3716, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3716, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_576stream_MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MAXINDEX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_MAXINDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_579stream_MEDPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_578stream_MEDPRICE[] = " MEDPRICE(high, low)\n\n    Median Price (Price Transform)\n\n    Inputs:\n        prices: ['high', 'low']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_579stream_MEDPRICE = {"stream_MEDPRICE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_579stream_MEDPRICE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_578stream_MEDPRICE};
static PyObject *__pyx_pw_5talib_7_ta_lib_579stream_MEDPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MEDPRICE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_MEDPRICE", 1, 2, 2, 1); __PYX_ERR(3, 3745, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MEDPRICE") < 0)) __PYX_ERR(3, 3745, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MEDPRICE", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3745, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 3745, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 3745, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_578stream_MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MEDPRICE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3763, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 3767, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MEDPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_581stream_MFI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_580stream_MFI[] = " MFI(high, low, close, volume[, timeperiod=?])\n\n    Money Flow Index (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close', 'volume']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_581stream_MFI = {"stream_MFI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_581stream_MFI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_580stream_MFI};
static PyObject *__pyx_pw_5talib_7_ta_lib_581stream_MFI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  PyArrayObject *__pyx_v_volume = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MFI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_volume,&__pyx_n_s_timeperiod,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, 1); __PYX_ERR(3, 3775, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, 2); __PYX_ERR(3, 3775, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_volume)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, 3); __PYX_ERR(3, 3775, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MFI") < 0)) __PYX_ERR(3, 3775, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    __pyx_v_volume = ((PyArrayObject *)values[3]);
    if (values[4]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3775, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3775, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MFI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 3775, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 3775, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 3775, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(3, 3775, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_580stream_MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  double *__pyx_v_volume_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MFI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);
  __Pyx_INCREF((PyObject *)__pyx_v_volume);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3799, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_volume_data = ((double *)__pyx_v_volume->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 3805, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MFI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3809, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MFI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XDECREF((PyObject *)__pyx_v_volume);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_583stream_MIDPOINT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_582stream_MIDPOINT[] = " MIDPOINT(real[, timeperiod=?])\n\n    MidPoint over period (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_583stream_MIDPOINT = {"stream_MIDPOINT", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_583stream_MIDPOINT, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_582stream_MIDPOINT};
static PyObject *__pyx_pw_5talib_7_ta_lib_583stream_MIDPOINT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MIDPOINT (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MIDPOINT") < 0)) __PYX_ERR(3, 3813, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3813, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MIDPOINT", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3813, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3813, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_582stream_MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_582stream_MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MIDPOINT", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MIDPOINT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_585stream_MIDPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_584stream_MIDPRICE[] = " MIDPRICE(high, low[, timeperiod=?])\n\n    Midpoint Price over period (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_585stream_MIDPRICE = {"stream_MIDPRICE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_585stream_MIDPRICE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_584stream_MIDPRICE};
static PyObject *__pyx_pw_5talib_7_ta_lib_585stream_MIDPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MIDPRICE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_MIDPRICE", 0, 2, 3, 1); __PYX_ERR(3, 3842, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MIDPRICE") < 0)) __PYX_ERR(3, 3842, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3842, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MIDPRICE", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3842, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 3842, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 3842, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_584stream_MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MIDPRICE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3864, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 3866, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MIDPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3870, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_587stream_MIN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_586stream_MIN[] = " MIN(real[, timeperiod=?])\n\n    Lowest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_587stream_MIN = {"stream_MIN", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_587stream_MIN, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_586stream_MIN};
static PyObject *__pyx_pw_5talib_7_ta_lib_587stream_MIN(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MIN (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MIN") < 0)) __PYX_ERR(3, 3874, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3874, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MIN", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3874, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MIN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3874, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_586stream_MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_586stream_MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MIN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3899, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MIN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_589stream_MININDEX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_588stream_MININDEX[] = " MININDEX(real[, timeperiod=?])\n\n    Index of lowest value over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        integer (values are -100, 0 or 100)\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_589stream_MININDEX = {"stream_MININDEX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_589stream_MININDEX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_588stream_MININDEX};
static PyObject *__pyx_pw_5talib_7_ta_lib_589stream_MININDEX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MININDEX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MININDEX") < 0)) __PYX_ERR(3, 3903, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3903, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MININDEX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3903, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3903, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_588stream_MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outinteger;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MININDEX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outinteger = 0;

  __pyx_v_retCode = TA_MININDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_591stream_MINMAX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_590stream_MINMAX[] = " MINMAX(real[, timeperiod=?])\n\n    Lowest and highest values over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        min\n        max\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_591stream_MINMAX = {"stream_MINMAX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_591stream_MINMAX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_590stream_MINMAX};
static PyObject *__pyx_pw_5talib_7_ta_lib_591stream_MINMAX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MINMAX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MINMAX") < 0)) __PYX_ERR(3, 3932, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3932, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MINMAX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3932, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3932, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_590stream_MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outmin;
  double __pyx_v_outmax;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MINMAX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outmin = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outmax = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MINMAX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmin), (&__pyx_v_outmax));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3960, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3960, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3960, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.stream_MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_593stream_MINMAXINDEX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_592stream_MINMAXINDEX[] = " MINMAXINDEX(real[, timeperiod=?])\n\n    Indexes of lowest and highest values over a specified period (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        minidx\n        maxidx\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_593stream_MINMAXINDEX = {"stream_MINMAXINDEX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_593stream_MINMAXINDEX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_592stream_MINMAXINDEX};
static PyObject *__pyx_pw_5talib_7_ta_lib_593stream_MINMAXINDEX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MINMAXINDEX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MINMAXINDEX") < 0)) __PYX_ERR(3, 3964, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3964, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MINMAXINDEX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3964, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 3964, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_592stream_MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  int __pyx_v_outminidx;
  int __pyx_v_outmaxidx;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MINMAXINDEX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outminidx = 0;

  __pyx_v_outmaxidx = 0;

  __pyx_v_retCode = TA_MINMAXINDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outminidx), (&__pyx_v_outmaxidx));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outminidx); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_outmaxidx); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.stream_MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_595stream_MINUS_DI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_594stream_MINUS_DI[] = " MINUS_DI(high, low, close[, timeperiod=?])\n\n    Minus Directional Indicator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_595stream_MINUS_DI = {"stream_MINUS_DI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_595stream_MINUS_DI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_594stream_MINUS_DI};
static PyObject *__pyx_pw_5talib_7_ta_lib_595stream_MINUS_DI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MINUS_DI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, 1); __PYX_ERR(3, 3996, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, 2); __PYX_ERR(3, 3996, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MINUS_DI") < 0)) __PYX_ERR(3, 3996, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3996, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 3996, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 3996, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 3996, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 3996, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_594stream_MINUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MINUS_DI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4023, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MINUS_DI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_597stream_MINUS_DM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_596stream_MINUS_DM[] = " MINUS_DM(high, low[, timeperiod=?])\n\n    Minus Directional Movement (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_597stream_MINUS_DM = {"stream_MINUS_DM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_597stream_MINUS_DM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_596stream_MINUS_DM};
static PyObject *__pyx_pw_5talib_7_ta_lib_597stream_MINUS_DM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MINUS_DM (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_MINUS_DM", 0, 2, 3, 1); __PYX_ERR(3, 4031, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MINUS_DM") < 0)) __PYX_ERR(3, 4031, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4031, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MINUS_DM", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4031, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 4031, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 4031, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_596stream_MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MINUS_DM", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4051, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4055, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MINUS_DM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4058, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_599stream_MOM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_598stream_MOM[] = " MOM(real[, timeperiod=?])\n\n    Momentum (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_599stream_MOM = {"stream_MOM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_599stream_MOM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_598stream_MOM};
static PyObject *__pyx_pw_5talib_7_ta_lib_599stream_MOM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MOM (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MOM") < 0)) __PYX_ERR(3, 4063, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4063, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MOM", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4063, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MOM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4063, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_598stream_MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_598stream_MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MOM", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MOM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4087, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MOM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_601stream_MULT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_600stream_MULT[] = " MULT(real0, real1)\n\n    Vector Arithmetic Mult (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_601stream_MULT = {"stream_MULT", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_601stream_MULT, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_600stream_MULT};
static PyObject *__pyx_pw_5talib_7_ta_lib_601stream_MULT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real0 = 0;
  PyArrayObject *__pyx_v_real1 = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_MULT (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_MULT", 1, 2, 2, 1); __PYX_ERR(3, 4092, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_MULT") < 0)) __PYX_ERR(3, 4092, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_real0 = ((PyArrayObject *)values[0]);
    __pyx_v_real1 = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_MULT", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4092, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_MULT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(3, 4092, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(3, 4092, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_600stream_MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real0_data;
  double *__pyx_v_real1_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_MULT", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real0);
  __Pyx_INCREF((PyObject *)__pyx_v_real1);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real0_data = ((double *)__pyx_v_real0->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real1_data = ((double *)__pyx_v_real1->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4115, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_MULT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_MULT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real0);
  __Pyx_XDECREF((PyObject *)__pyx_v_real1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_603stream_NATR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_602stream_NATR[] = " NATR(high, low, close[, timeperiod=?])\n\n    Normalized Average True Range (Volatility Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_603stream_NATR = {"stream_NATR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_603stream_NATR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_602stream_NATR};
static PyObject *__pyx_pw_5talib_7_ta_lib_603stream_NATR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_NATR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, 1); __PYX_ERR(3, 4123, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, 2); __PYX_ERR(3, 4123, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_NATR") < 0)) __PYX_ERR(3, 4123, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4123, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4123, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_NATR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 4123, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 4123, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 4123, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_602stream_NATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_NATR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4150, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_NATR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_NATR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_605stream_OBV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_604stream_OBV[] = " OBV(real, volume)\n\n    On Balance Volume (Volume Indicators)\n\n    Inputs:\n        real: (any ndarray)\n        prices: ['volume']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_605stream_OBV = {"stream_OBV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_605stream_OBV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_604stream_OBV};
static PyObject *__pyx_pw_5talib_7_ta_lib_605stream_OBV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  PyArrayObject *__pyx_v_volume = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_OBV (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_volume,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_volume)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_OBV", 1, 2, 2, 1); __PYX_ERR(3, 4158, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_OBV") < 0)) __PYX_ERR(3, 4158, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    __pyx_v_volume = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_OBV", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4158, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_OBV", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4158, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(3, 4158, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_604stream_OBV(__pyx_self, __pyx_v_real, __pyx_v_volume);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_604stream_OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  double *__pyx_v_volume_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_OBV", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);
  __Pyx_INCREF((PyObject *)__pyx_v_volume);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_volume_data = ((double *)__pyx_v_volume->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4181, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_OBV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_OBV", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XDECREF((PyObject *)__pyx_v_volume);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_607stream_PLUS_DI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_606stream_PLUS_DI[] = " PLUS_DI(high, low, close[, timeperiod=?])\n\n    Plus Directional Indicator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_607stream_PLUS_DI = {"stream_PLUS_DI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_607stream_PLUS_DI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_606stream_PLUS_DI};
static PyObject *__pyx_pw_5talib_7_ta_lib_607stream_PLUS_DI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_PLUS_DI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, 1); __PYX_ERR(3, 4189, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, 2); __PYX_ERR(3, 4189, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_PLUS_DI") < 0)) __PYX_ERR(3, 4189, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4189, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4189, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 4189, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 4189, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 4189, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_606stream_PLUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_PLUS_DI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4216, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_PLUS_DI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_609stream_PLUS_DM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_608stream_PLUS_DM[] = " PLUS_DM(high, low[, timeperiod=?])\n\n    Plus Directional Movement (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_609stream_PLUS_DM = {"stream_PLUS_DM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_609stream_PLUS_DM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_608stream_PLUS_DM};
static PyObject *__pyx_pw_5talib_7_ta_lib_609stream_PLUS_DM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_PLUS_DM (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_PLUS_DM", 0, 2, 3, 1); __PYX_ERR(3, 4224, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_PLUS_DM") < 0)) __PYX_ERR(3, 4224, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4224, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_PLUS_DM", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4224, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 4224, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 4224, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_608stream_PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_608stream_PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_PLUS_DM", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4248, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_PLUS_DM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_611stream_PPO(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_610stream_PPO[] = " PPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\n    Percentage Price Oscillator (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        fastperiod: 12\n        slowperiod: 26\n        matype: 0 (Simple Moving Average)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_611stream_PPO = {"stream_PPO", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_611stream_PPO, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_610stream_PPO};
static PyObject *__pyx_pw_5talib_7_ta_lib_611stream_PPO(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_fastperiod;
  int __pyx_v_slowperiod;
  int __pyx_v_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_PPO (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,&__pyx_n_s_matype,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowperiod);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matype);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_PPO") < 0)) __PYX_ERR(3, 4256, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4256, __pyx_L3_error)
    } else {
      __pyx_v_fastperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4256, __pyx_L3_error)
    } else {
      __pyx_v_slowperiod = ((int)-2147483648);
    }
    if (values[3]) {
      __pyx_v_matype = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4256, __pyx_L3_error)
    } else {
      __pyx_v_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_PPO", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4256, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_PPO", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4256, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_610stream_PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_PPO", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_PPO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_PPO", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_613stream_ROC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_612stream_ROC[] = " ROC(real[, timeperiod=?])\n\n    Rate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_613stream_ROC = {"stream_ROC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_613stream_ROC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_612stream_ROC};
static PyObject *__pyx_pw_5talib_7_ta_lib_613stream_ROC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_ROC (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_ROC") < 0)) __PYX_ERR(3, 4287, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4287, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_ROC", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4287, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_ROC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4287, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_612stream_ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_ROC", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_ROC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_ROC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_615stream_ROCP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_614stream_ROCP[] = " ROCP(real[, timeperiod=?])\n\n    Rate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_615stream_ROCP = {"stream_ROCP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_615stream_ROCP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_614stream_ROCP};
static PyObject *__pyx_pw_5talib_7_ta_lib_615stream_ROCP(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_ROCP (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_ROCP") < 0)) __PYX_ERR(3, 4316, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4316, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_ROCP", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4316, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4316, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_614stream_ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_ROCP", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_ROCP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_617stream_ROCR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_616stream_ROCR[] = " ROCR(real[, timeperiod=?])\n\n    Rate of change ratio: (real/prevPrice) (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_617stream_ROCR = {"stream_ROCR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_617stream_ROCR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_616stream_ROCR};
static PyObject *__pyx_pw_5talib_7_ta_lib_617stream_ROCR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_ROCR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_ROCR") < 0)) __PYX_ERR(3, 4345, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4345, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_ROCR", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4345, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4345, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_616stream_ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_ROCR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_ROCR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_619stream_ROCR100(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_618stream_ROCR100[] = " ROCR100(real[, timeperiod=?])\n\n    Rate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 10\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_619stream_ROCR100 = {"stream_ROCR100", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_619stream_ROCR100, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_618stream_ROCR100};
static PyObject *__pyx_pw_5talib_7_ta_lib_619stream_ROCR100(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_ROCR100 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_ROCR100") < 0)) __PYX_ERR(3, 4374, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4374, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_ROCR100", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4374, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4374, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_618stream_ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_ROCR100", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_ROCR100((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_621stream_RSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_620stream_RSI[] = " RSI(real[, timeperiod=?])\n\n    Relative Strength Index (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_621stream_RSI = {"stream_RSI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_621stream_RSI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_620stream_RSI};
static PyObject *__pyx_pw_5talib_7_ta_lib_621stream_RSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_RSI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_RSI") < 0)) __PYX_ERR(3, 4403, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4403, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_RSI", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4403, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_RSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4403, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_620stream_RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_RSI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_RSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4428, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_RSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_623stream_SAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_622stream_SAR[] = " SAR(high, low[, acceleration=?, maximum=?])\n\n    Parabolic SAR (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        acceleration: 0.02\n        maximum: 0.2\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_623stream_SAR = {"stream_SAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_623stream_SAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_622stream_SAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_623stream_SAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  double __pyx_v_acceleration;
  double __pyx_v_maximum;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_SAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_acceleration,&__pyx_n_s_maximum,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_SAR", 0, 2, 4, 1); __PYX_ERR(3, 4432, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_acceleration);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_maximum);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_SAR") < 0)) __PYX_ERR(3, 4432, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_acceleration = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4432, __pyx_L3_error)
    } else {
      __pyx_v_acceleration = ((double)0.02);
    }
    if (values[3]) {
      __pyx_v_maximum = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4432, __pyx_L3_error)
    } else {
      __pyx_v_maximum = ((double)0.2);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_SAR", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4432, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_SAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 4432, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 4432, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_622stream_SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_SAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4457, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_SAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_SAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_625stream_SAREXT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_624stream_SAREXT[] = " SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\n    Parabolic SAR - Extended (Overlap Studies)\n\n    Inputs:\n        prices: ['high', 'low']\n    Parameters:\n        startvalue: 0\n        offsetonreverse: 0\n        accelerationinitlong: 0.02\n        accelerationlong: 0.02\n        accelerationmaxlong: 0.2\n        accelerationinitshort: 0.02\n        accelerationshort: 0.02\n        accelerationmaxshort: 0.2\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_625stream_SAREXT = {"stream_SAREXT", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_625stream_SAREXT, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_624stream_SAREXT};
static PyObject *__pyx_pw_5talib_7_ta_lib_625stream_SAREXT(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  double __pyx_v_startvalue;
  double __pyx_v_offsetonreverse;
  double __pyx_v_accelerationinitlong;
  double __pyx_v_accelerationlong;
  double __pyx_v_accelerationmaxlong;
  double __pyx_v_accelerationinitshort;
  double __pyx_v_accelerationshort;
  double __pyx_v_accelerationmaxshort;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_SAREXT (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_startvalue,&__pyx_n_s_offsetonreverse,&__pyx_n_s_accelerationinitlong,&__pyx_n_s_accelerationlong,&__pyx_n_s_accelerationmaxlong,&__pyx_n_s_accelerationinitshort,&__pyx_n_s_accelerationshort,&__pyx_n_s_accelerationmaxshort,0};
    PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_SAREXT", 0, 2, 10, 1); __PYX_ERR(3, 4465, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_startvalue);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_offsetonreverse);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accelerationinitlong);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accelerationlong);
          if (value) { values[5] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accelerationmaxlong);
          if (value) { values[6] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accelerationinitshort);
          if (value) { values[7] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accelerationshort);
          if (value) { values[8] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accelerationmaxshort);
          if (value) { values[9] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_SAREXT") < 0)) __PYX_ERR(3, 4465, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_startvalue = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4465, __pyx_L3_error)
    } else {
      __pyx_v_startvalue = ((double)-4e37);
    }
    if (values[3]) {
      __pyx_v_offsetonreverse = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4465, __pyx_L3_error)
    } else {
      __pyx_v_offsetonreverse = ((double)-4e37);
    }
    if (values[4]) {
      __pyx_v_accelerationinitlong = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4465, __pyx_L3_error)
    } else {
      __pyx_v_accelerationinitlong = ((double)-4e37);
    }
    if (values[5]) {
      __pyx_v_accelerationlong = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4465, __pyx_L3_error)
    } else {
      __pyx_v_accelerationlong = ((double)-4e37);
    }
    if (values[6]) {
      __pyx_v_accelerationmaxlong = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4465, __pyx_L3_error)
    } else {
      __pyx_v_accelerationmaxlong = ((double)-4e37);
    }
    if (values[7]) {
      __pyx_v_accelerationinitshort = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4465, __pyx_L3_error)
    } else {
      __pyx_v_accelerationinitshort = ((double)-4e37);
    }
    if (values[8]) {
      __pyx_v_accelerationshort = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4465, __pyx_L3_error)
    } else {
      __pyx_v_accelerationshort = ((double)-4e37);
    }
    if (values[9]) {
      __pyx_v_accelerationmaxshort = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4465, __pyx_L3_error)
    } else {
      __pyx_v_accelerationmaxshort = ((double)-4e37);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_SAREXT", 0, 2, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4465, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 4465, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 4465, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_624stream_SAREXT(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_624stream_SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_SAREXT", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4496, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_SAREXT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_627stream_SIN(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_626stream_SIN[] = " SIN(real)\n\n    Vector Trigonometric Sin (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_627stream_SIN = {"stream_SIN", (PyCFunction)__pyx_pw_5talib_7_ta_lib_627stream_SIN, METH_O, __pyx_doc_5talib_7_ta_lib_626stream_SIN};
static PyObject *__pyx_pw_5talib_7_ta_lib_627stream_SIN(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_SIN (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4504, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_626stream_SIN(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_SIN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_SIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_SIN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_629stream_SINH(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_628stream_SINH[] = " SINH(real)\n\n    Vector Trigonometric Sinh (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_629stream_SINH = {"stream_SINH", (PyCFunction)__pyx_pw_5talib_7_ta_lib_629stream_SINH, METH_O, __pyx_doc_5talib_7_ta_lib_628stream_SINH};
static PyObject *__pyx_pw_5talib_7_ta_lib_629stream_SINH(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_SINH (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4531, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_628stream_SINH(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_SINH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_SINH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4553, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_SINH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_631stream_SMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_630stream_SMA[] = " SMA(real[, timeperiod=?])\n\n    Simple Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_631stream_SMA = {"stream_SMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_631stream_SMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_630stream_SMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_631stream_SMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_SMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_SMA") < 0)) __PYX_ERR(3, 4558, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4558, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_SMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4558, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_SMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4558, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_630stream_SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_SMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_SMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_SMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_633stream_SQRT(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_632stream_SQRT[] = " SQRT(real)\n\n    Vector Square Root (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_633stream_SQRT = {"stream_SQRT", (PyCFunction)__pyx_pw_5talib_7_ta_lib_633stream_SQRT, METH_O, __pyx_doc_5talib_7_ta_lib_632stream_SQRT};
static PyObject *__pyx_pw_5talib_7_ta_lib_633stream_SQRT(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_SQRT (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4587, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_632stream_SQRT(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_SQRT", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_SQRT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4610, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_635stream_STDDEV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_634stream_STDDEV[] = " STDDEV(real[, timeperiod=?, nbdev=?])\n\n    Standard Deviation (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        nbdev: 1\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_635stream_STDDEV = {"stream_STDDEV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_635stream_STDDEV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_634stream_STDDEV};
static PyObject *__pyx_pw_5talib_7_ta_lib_635stream_STDDEV(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  double __pyx_v_nbdev;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_STDDEV (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_nbdev,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nbdev);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_STDDEV") < 0)) __PYX_ERR(3, 4614, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4614, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_nbdev = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4614, __pyx_L3_error)
    } else {
      __pyx_v_nbdev = ((double)-4e37);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_STDDEV", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4614, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4614, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_634stream_STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_STDDEV", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_STDDEV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4640, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_637stream_STOCH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_636stream_STOCH[] = " STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\n    Stochastic (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        fastk_period: 5\n        slowk_period: 3\n        slowk_matype: 0\n        slowd_period: 3\n        slowd_matype: 0\n    Outputs:\n        slowk\n        slowd\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_637stream_STOCH = {"stream_STOCH", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_637stream_STOCH, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_636stream_STOCH};
static PyObject *__pyx_pw_5talib_7_ta_lib_637stream_STOCH(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_fastk_period;
  int __pyx_v_slowk_period;
  int __pyx_v_slowk_matype;
  int __pyx_v_slowd_period;
  int __pyx_v_slowd_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_STOCH (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_fastk_period,&__pyx_n_s_slowk_period,&__pyx_n_s_slowk_matype,&__pyx_n_s_slowd_period,&__pyx_n_s_slowd_matype,0};
    PyObject* values[8] = {0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, 1); __PYX_ERR(3, 4644, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, 2); __PYX_ERR(3, 4644, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastk_period);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowk_period);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowk_matype);
          if (value) { values[5] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowd_period);
          if (value) { values[6] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_slowd_matype);
          if (value) { values[7] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_STOCH") < 0)) __PYX_ERR(3, 4644, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_fastk_period = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4644, __pyx_L3_error)
    } else {
      __pyx_v_fastk_period = ((int)-2147483648);
    }
    if (values[4]) {
      __pyx_v_slowk_period = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4644, __pyx_L3_error)
    } else {
      __pyx_v_slowk_period = ((int)-2147483648);
    }
    if (values[5]) {
      __pyx_v_slowk_matype = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4644, __pyx_L3_error)
    } else {
      __pyx_v_slowk_matype = ((int)0);
    }
    if (values[6]) {
      __pyx_v_slowd_period = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4644, __pyx_L3_error)
    } else {
      __pyx_v_slowd_period = ((int)-2147483648);
    }
    if (values[7]) {
      __pyx_v_slowd_matype = __Pyx_PyInt_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4644, __pyx_L3_error)
    } else {
      __pyx_v_slowd_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4644, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 4644, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 4644, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 4644, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_636stream_STOCH(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outslowk;
  double __pyx_v_outslowd;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_STOCH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4673, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4677, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outslowk = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outslowd = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_STOCH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outslowk), (&__pyx_v_outslowd));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("talib._ta_lib.stream_STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_639stream_STOCHF(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_638stream_STOCHF[] = " STOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\n    Stochastic Fast (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        fastk_period: 5\n        fastd_period: 3\n        fastd_matype: 0\n    Outputs:\n        fastk\n        fastd\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_639stream_STOCHF = {"stream_STOCHF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_639stream_STOCHF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_638stream_STOCHF};
static PyObject *__pyx_pw_5talib_7_ta_lib_639stream_STOCHF(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_fastk_period;
  int __pyx_v_fastd_period;
  int __pyx_v_fastd_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_STOCHF (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_fastk_period,&__pyx_n_s_fastd_period,&__pyx_n_s_fastd_matype,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, 1); __PYX_ERR(3, 4686, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, 2); __PYX_ERR(3, 4686, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastk_period);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastd_period);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastd_matype);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_STOCHF") < 0)) __PYX_ERR(3, 4686, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_fastk_period = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4686, __pyx_L3_error)
    } else {
      __pyx_v_fastk_period = ((int)-2147483648);
    }
    if (values[4]) {
      __pyx_v_fastd_period = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4686, __pyx_L3_error)
    } else {
      __pyx_v_fastd_period = ((int)-2147483648);
    }
    if (values[5]) {
      __pyx_v_fastd_matype = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4686, __pyx_L3_error)
    } else {
      __pyx_v_fastd_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4686, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 4686, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 4686, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 4686, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_638stream_STOCHF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outfastk;
  double __pyx_v_outfastd;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_STOCHF", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4713, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4717, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outfastk = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outfastd = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_STOCHF((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outfastk), (&__pyx_v_outfastd));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4721, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("talib._ta_lib.stream_STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_641stream_STOCHRSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_640stream_STOCHRSI[] = " STOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\n    Stochastic Relative Strength Index (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n        fastk_period: 5\n        fastd_period: 3\n        fastd_matype: 0\n    Outputs:\n        fastk\n        fastd\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_641stream_STOCHRSI = {"stream_STOCHRSI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_641stream_STOCHRSI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_640stream_STOCHRSI};
static PyObject *__pyx_pw_5talib_7_ta_lib_641stream_STOCHRSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_v_fastk_period;
  int __pyx_v_fastd_period;
  int __pyx_v_fastd_matype;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_STOCHRSI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_fastk_period,&__pyx_n_s_fastd_period,&__pyx_n_s_fastd_matype,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastk_period);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastd_period);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fastd_matype);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_STOCHRSI") < 0)) __PYX_ERR(3, 4726, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4726, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_fastk_period = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4726, __pyx_L3_error)
    } else {
      __pyx_v_fastk_period = ((int)-2147483648);
    }
    if (values[3]) {
      __pyx_v_fastd_period = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4726, __pyx_L3_error)
    } else {
      __pyx_v_fastd_period = ((int)-2147483648);
    }
    if (values[4]) {
      __pyx_v_fastd_matype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4726, __pyx_L3_error)
    } else {
      __pyx_v_fastd_matype = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_STOCHRSI", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4726, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4726, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_640stream_STOCHRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outfastk;
  double __pyx_v_outfastd;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_STOCHRSI", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outfastk = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_outfastd = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_STOCHRSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outfastk), (&__pyx_v_outfastd));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("talib._ta_lib.stream_STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_643stream_SUB(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_642stream_SUB[] = " SUB(real0, real1)\n\n    Vector Arithmetic Substraction (Math Operators)\n\n    Inputs:\n        real0: (any ndarray)\n        real1: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_643stream_SUB = {"stream_SUB", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_643stream_SUB, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_642stream_SUB};
static PyObject *__pyx_pw_5talib_7_ta_lib_643stream_SUB(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real0 = 0;
  PyArrayObject *__pyx_v_real1 = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_SUB (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_SUB", 1, 2, 2, 1); __PYX_ERR(3, 4761, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_SUB") < 0)) __PYX_ERR(3, 4761, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_real0 = ((PyArrayObject *)values[0]);
    __pyx_v_real1 = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_SUB", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4761, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_SUB", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(3, 4761, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(3, 4761, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_642stream_SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_642stream_SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real0_data;
  double *__pyx_v_real1_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_SUB", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real0);
  __Pyx_INCREF((PyObject *)__pyx_v_real1);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real0_data = ((double *)__pyx_v_real0->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real1_data = ((double *)__pyx_v_real1->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4784, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_SUB((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_SUB", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real0);
  __Pyx_XDECREF((PyObject *)__pyx_v_real1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_645stream_SUM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_644stream_SUM[] = " SUM(real[, timeperiod=?])\n\n    Summation (Math Operators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_645stream_SUM = {"stream_SUM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_645stream_SUM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_644stream_SUM};
static PyObject *__pyx_pw_5talib_7_ta_lib_645stream_SUM(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_SUM (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_SUM") < 0)) __PYX_ERR(3, 4792, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4792, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_SUM", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4792, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_SUM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4792, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_644stream_SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_SUM", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4811, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_SUM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_SUM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_647stream_T3(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_646stream_T3[] = " T3(real[, timeperiod=?, vfactor=?])\n\n    Triple Exponential Moving Average (T3) (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        vfactor: 0.7\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_647stream_T3 = {"stream_T3", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_647stream_T3, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_646stream_T3};
static PyObject *__pyx_pw_5talib_7_ta_lib_647stream_T3(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  double __pyx_v_vfactor;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_T3 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_vfactor,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vfactor);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_T3") < 0)) __PYX_ERR(3, 4821, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4821, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_vfactor = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4821, __pyx_L3_error)
    } else {
      __pyx_v_vfactor = ((double)-4e37);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_T3", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4821, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_T3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4821, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_646stream_T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_T3", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_T3((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_T3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_649stream_TAN(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_648stream_TAN[] = " TAN(real)\n\n    Vector Trigonometric Tan (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_649stream_TAN = {"stream_TAN", (PyCFunction)__pyx_pw_5talib_7_ta_lib_649stream_TAN, METH_O, __pyx_doc_5talib_7_ta_lib_648stream_TAN};
static PyObject *__pyx_pw_5talib_7_ta_lib_649stream_TAN(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_TAN (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4851, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_648stream_TAN(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_648stream_TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_TAN", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_TAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_TAN", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_651stream_TANH(PyObject *__pyx_self, PyObject *__pyx_v_real); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_650stream_TANH[] = " TANH(real)\n\n    Vector Trigonometric Tanh (Math Transform)\n\n    Inputs:\n        real: (any ndarray)\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_651stream_TANH = {"stream_TANH", (PyCFunction)__pyx_pw_5talib_7_ta_lib_651stream_TANH, METH_O, __pyx_doc_5talib_7_ta_lib_650stream_TANH};
static PyObject *__pyx_pw_5talib_7_ta_lib_651stream_TANH(PyObject *__pyx_self, PyObject *__pyx_v_real) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_TANH (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4878, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_650stream_TANH(__pyx_self, ((PyArrayObject *)__pyx_v_real));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_TANH", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_TANH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4900, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4901, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_TANH", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_653stream_TEMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_652stream_TEMA[] = " TEMA(real[, timeperiod=?])\n\n    Triple Exponential Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_653stream_TEMA = {"stream_TEMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_653stream_TEMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_652stream_TEMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_653stream_TEMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_TEMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_TEMA") < 0)) __PYX_ERR(3, 4905, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4905, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_TEMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4905, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4905, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_652stream_TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_TEMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_TEMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_655stream_TRANGE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_654stream_TRANGE[] = " TRANGE(high, low, close)\n\n    True Range (Volatility Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_655stream_TRANGE = {"stream_TRANGE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_655stream_TRANGE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_654stream_TRANGE};
static PyObject *__pyx_pw_5talib_7_ta_lib_655stream_TRANGE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_TRANGE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_TRANGE", 1, 3, 3, 1); __PYX_ERR(3, 4934, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_TRANGE", 1, 3, 3, 2); __PYX_ERR(3, 4934, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_TRANGE") < 0)) __PYX_ERR(3, 4934, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_TRANGE", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4934, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 4934, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 4934, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 4934, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_654stream_TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_TRANGE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4957, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4959, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_TRANGE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_657stream_TRIMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_656stream_TRIMA[] = " TRIMA(real[, timeperiod=?])\n\n    Triangular Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_657stream_TRIMA = {"stream_TRIMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_657stream_TRIMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_656stream_TRIMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_657stream_TRIMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_TRIMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_TRIMA") < 0)) __PYX_ERR(3, 4967, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4967, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_TRIMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4967, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4967, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_656stream_TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_TRIMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_TRIMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_659stream_TRIX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_658stream_TRIX[] = " TRIX(real[, timeperiod=?])\n\n    1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_659stream_TRIX = {"stream_TRIX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_659stream_TRIX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_658stream_TRIX};
static PyObject *__pyx_pw_5talib_7_ta_lib_659stream_TRIX(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_TRIX (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_TRIX") < 0)) __PYX_ERR(3, 4996, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4996, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_TRIX", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 4996, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 4996, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_658stream_TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_TRIX", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5015, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_TRIX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_661stream_TSF(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_660stream_TSF[] = " TSF(real[, timeperiod=?])\n\n    Time Series Forecast (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_661stream_TSF = {"stream_TSF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_661stream_TSF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_660stream_TSF};
static PyObject *__pyx_pw_5talib_7_ta_lib_661stream_TSF(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_TSF (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_TSF") < 0)) __PYX_ERR(3, 5025, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5025, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_TSF", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 5025, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_TSF", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 5025, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_660stream_TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_TSF", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_TSF((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5050, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_TSF", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_663stream_TYPPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_662stream_TYPPRICE[] = " TYPPRICE(high, low, close)\n\n    Typical Price (Price Transform)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_663stream_TYPPRICE = {"stream_TYPPRICE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_663stream_TYPPRICE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_662stream_TYPPRICE};
static PyObject *__pyx_pw_5talib_7_ta_lib_663stream_TYPPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_TYPPRICE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_TYPPRICE", 1, 3, 3, 1); __PYX_ERR(3, 5054, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_TYPPRICE", 1, 3, 3, 2); __PYX_ERR(3, 5054, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_TYPPRICE") < 0)) __PYX_ERR(3, 5054, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_TYPPRICE", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 5054, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 5054, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 5054, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 5054, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_662stream_TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_TYPPRICE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5075, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 5079, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_TYPPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_665stream_ULTOSC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_664stream_ULTOSC[] = " ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\n    Ultimate Oscillator (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod1: 7\n        timeperiod2: 14\n        timeperiod3: 28\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_665stream_ULTOSC = {"stream_ULTOSC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_665stream_ULTOSC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_664stream_ULTOSC};
static PyObject *__pyx_pw_5talib_7_ta_lib_665stream_ULTOSC(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod1;
  int __pyx_v_timeperiod2;
  int __pyx_v_timeperiod3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_ULTOSC (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod1,&__pyx_n_s_timeperiod2,&__pyx_n_s_timeperiod3,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, 1); __PYX_ERR(3, 5087, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, 2); __PYX_ERR(3, 5087, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod1);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod2);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod3);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_ULTOSC") < 0)) __PYX_ERR(3, 5087, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod1 = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5087, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod1 = ((int)-2147483648);
    }
    if (values[4]) {
      __pyx_v_timeperiod2 = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5087, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod2 = ((int)-2147483648);
    }
    if (values[5]) {
      __pyx_v_timeperiod3 = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5087, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod3 = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 5087, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 5087, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 5087, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 5087, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_664stream_ULTOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_ULTOSC", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 5116, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_ULTOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_667stream_VAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_666stream_VAR[] = " VAR(real[, timeperiod=?, nbdev=?])\n\n    Variance (Statistic Functions)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 5\n        nbdev: 1\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_667stream_VAR = {"stream_VAR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_667stream_VAR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_666stream_VAR};
static PyObject *__pyx_pw_5talib_7_ta_lib_667stream_VAR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  double __pyx_v_nbdev;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_VAR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_nbdev,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nbdev);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_VAR") < 0)) __PYX_ERR(3, 5124, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5124, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
    if (values[2]) {
      __pyx_v_nbdev = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5124, __pyx_L3_error)
    } else {
      __pyx_v_nbdev = ((double)-4e37);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_VAR", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 5124, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_VAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 5124, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_666stream_VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_VAR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_VAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_VAR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_669stream_WCLPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_668stream_WCLPRICE[] = " WCLPRICE(high, low, close)\n\n    Weighted Close Price (Price Transform)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_669stream_WCLPRICE = {"stream_WCLPRICE", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_669stream_WCLPRICE, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_668stream_WCLPRICE};
static PyObject *__pyx_pw_5talib_7_ta_lib_669stream_WCLPRICE(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_WCLPRICE (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_WCLPRICE", 1, 3, 3, 1); __PYX_ERR(3, 5154, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_WCLPRICE", 1, 3, 3, 2); __PYX_ERR(3, 5154, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_WCLPRICE") < 0)) __PYX_ERR(3, 5154, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_WCLPRICE", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 5154, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 5154, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 5154, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 5154, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_668stream_WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_WCLPRICE", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 5179, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_WCLPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_671stream_WILLR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_670stream_WILLR[] = " WILLR(high, low, close[, timeperiod=?])\n\n    Williams' %R (Momentum Indicators)\n\n    Inputs:\n        prices: ['high', 'low', 'close']\n    Parameters:\n        timeperiod: 14\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_671stream_WILLR = {"stream_WILLR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_671stream_WILLR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_670stream_WILLR};
static PyObject *__pyx_pw_5talib_7_ta_lib_671stream_WILLR(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_high = 0;
  PyArrayObject *__pyx_v_low = 0;
  PyArrayObject *__pyx_v_close = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_WILLR (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, 1); __PYX_ERR(3, 5187, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, 2); __PYX_ERR(3, 5187, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_WILLR") < 0)) __PYX_ERR(3, 5187, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_high = ((PyArrayObject *)values[0]);
    __pyx_v_low = ((PyArrayObject *)values[1]);
    __pyx_v_close = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5187, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 5187, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(3, 5187, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(3, 5187, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(3, 5187, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_670stream_WILLR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_high_data;
  double *__pyx_v_low_data;
  double *__pyx_v_close_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  npy_intp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_WILLR", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_high);
  __Pyx_INCREF((PyObject *)__pyx_v_low);
  __Pyx_INCREF((PyObject *)__pyx_v_close);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_high_data = ((double *)__pyx_v_high->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_low_data = ((double *)__pyx_v_low->data);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_close_data = ((double *)__pyx_v_close->data);

  __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 5214, __pyx_L1_error)
  __pyx_v_length = __pyx_t_2;

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_WILLR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_high);
  __Pyx_XDECREF((PyObject *)__pyx_v_low);
  __Pyx_XDECREF((PyObject *)__pyx_v_close);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


/* Python wrapper */
static PyObject *__pyx_pw_5talib_7_ta_lib_673stream_WMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5talib_7_ta_lib_672stream_WMA[] = " WMA(real[, timeperiod=?])\n\n    Weighted Moving Average (Overlap Studies)\n\n    Inputs:\n        real: (any ndarray)\n    Parameters:\n        timeperiod: 30\n    Outputs:\n        real\n    ";
static PyMethodDef __pyx_mdef_5talib_7_ta_lib_673stream_WMA = {"stream_WMA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_673stream_WMA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_672stream_WMA};
static PyObject *__pyx_pw_5talib_7_ta_lib_673stream_WMA(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_real = 0;
  int __pyx_v_timeperiod;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_WMA (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_real)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeperiod);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stream_WMA") < 0)) __PYX_ERR(3, 5222, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_real = ((PyArrayObject *)values[0]);
    if (values[1]) {
      __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5222, __pyx_L3_error)
    } else {
      __pyx_v_timeperiod = ((int)-2147483648);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_WMA", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 5222, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("talib._ta_lib.stream_WMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(3, 5222, __pyx_L1_error)
  __pyx_r = __pyx_pf_5talib_7_ta_lib_672stream_WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) {
  npy_intp __pyx_v_length;
  TA_RetCode __pyx_v_retCode;
  double *__pyx_v_real_data;
  int __pyx_v_outbegidx;
  int __pyx_v_outnbelement;
  double __pyx_v_outreal;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_WMA", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_real);

  __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1));
  __pyx_t_1 = 0;

  __pyx_v_real_data = ((double *)__pyx_v_real->data);

  __pyx_v_length = (__pyx_v_real->dimensions[0]);

  __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN;

  __pyx_v_retCode = TA_WMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal));

  __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("talib._ta_lib.stream_WMA", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_real);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);

  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);

  __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(4, 739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


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;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);

  __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(4, 742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


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;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);

  __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(4, 745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


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;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);

  __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(4, 748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0);

  __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0);
  if (__pyx_t_1) {

    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape));
    __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape);
    goto __pyx_L0;

  }

  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_empty_tuple);
    __pyx_r = __pyx_empty_tuple;
    goto __pyx_L0;
  }


  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_array_base", 0);

  Py_INCREF(__pyx_v_base);

  (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base));


  /* function exit code */
  __Pyx_RefNannyFinishContext();
}


static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
  PyObject *__pyx_v_base;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("get_array_base", 0);

  __pyx_v_base = PyArray_BASE(__pyx_v_arr);

  __pyx_t_1 = ((__pyx_v_base == NULL) != 0);
  if (__pyx_t_1) {

    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

  }

  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_base));
  __pyx_r = ((PyObject *)__pyx_v_base);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("import_array", 0);

  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(4, 943, __pyx_L3_error)

    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_4) {
      __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(4, 944, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);

      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 945, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(4, 945, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }


  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("import_umath", 0);

  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(4, 949, __pyx_L3_error)

    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_4) {
      __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(4, 950, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);

      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 951, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(4, 951, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }


  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("import_ufunc", 0);

  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(4, 955, __pyx_L3_error)

    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_4) {
      __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(4, 956, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);

      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 957, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(4, 957, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }


  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_timedelta64_object", 0);

  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type));
  goto __pyx_L0;


  /* function exit code */
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_datetime64_object", 0);

  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type));
  goto __pyx_L0;


  /* function exit code */
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}


static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) {
  npy_datetime __pyx_r;

  __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}


static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) {
  npy_timedelta __pyx_r;

  __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval;
  goto __pyx_L0;


  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}


static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) {
  NPY_DATETIMEUNIT __pyx_r;

  __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base);
  goto __pyx_L0;


  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static PyMethodDef __pyx_methods[] = {
  {"_ta_check_success", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5talib_7_ta_lib_1_ta_check_success, METH_VARARGS|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

#if PY_MAJOR_VERSION >= 3
#if CYTHON_PEP489_MULTI_PHASE_INIT
static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
static int __pyx_pymod_exec__ta_lib(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec__ta_lib},
  {0, NULL}
};
#endif

static struct PyModuleDef __pyx_moduledef = {
    PyModuleDef_HEAD_INIT,
    "_ta_lib",
    0, /* m_doc */
  #if CYTHON_PEP489_MULTI_PHASE_INIT
    0, /* m_size */
  #else
    -1, /* m_size */
  #endif
    __pyx_methods /* m_methods */,
  #if CYTHON_PEP489_MULTI_PHASE_INIT
    __pyx_moduledef_slots, /* m_slots */
  #else
    NULL, /* m_reload */
  #endif
    NULL, /* m_traverse */
    NULL, /* m_clear */
    NULL /* m_free */
};
#endif
#ifndef CYTHON_SMALL_CODE
#if defined(__clang__)
    #define CYTHON_SMALL_CODE
#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
    #define CYTHON_SMALL_CODE __attribute__((cold))
#else
    #define CYTHON_SMALL_CODE
#endif
#endif

static __Pyx_StringTabEntry __pyx_string_tab[] = {
  {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0},
  {&__pyx_n_s_ACOS, __pyx_k_ACOS, sizeof(__pyx_k_ACOS), 0, 0, 1, 1},
  {&__pyx_n_s_AD, __pyx_k_AD, sizeof(__pyx_k_AD), 0, 0, 1, 1},
  {&__pyx_n_s_ADD, __pyx_k_ADD, sizeof(__pyx_k_ADD), 0, 0, 1, 1},
  {&__pyx_n_s_ADOSC, __pyx_k_ADOSC, sizeof(__pyx_k_ADOSC), 0, 0, 1, 1},
  {&__pyx_n_s_ADX, __pyx_k_ADX, sizeof(__pyx_k_ADX), 0, 0, 1, 1},
  {&__pyx_n_s_ADXR, __pyx_k_ADXR, sizeof(__pyx_k_ADXR), 0, 0, 1, 1},
  {&__pyx_n_s_ALL, __pyx_k_ALL, sizeof(__pyx_k_ALL), 0, 0, 1, 1},
  {&__pyx_n_s_APO, __pyx_k_APO, sizeof(__pyx_k_APO), 0, 0, 1, 1},
  {&__pyx_n_s_AROON, __pyx_k_AROON, sizeof(__pyx_k_AROON), 0, 0, 1, 1},
  {&__pyx_n_s_AROONOSC, __pyx_k_AROONOSC, sizeof(__pyx_k_AROONOSC), 0, 0, 1, 1},
  {&__pyx_n_s_ARRAY_TYPES, __pyx_k_ARRAY_TYPES, sizeof(__pyx_k_ARRAY_TYPES), 0, 0, 1, 1},
  {&__pyx_n_s_ASIN, __pyx_k_ASIN, sizeof(__pyx_k_ASIN), 0, 0, 1, 1},
  {&__pyx_n_s_ATAN, __pyx_k_ATAN, sizeof(__pyx_k_ATAN), 0, 0, 1, 1},
  {&__pyx_n_s_ATR, __pyx_k_ATR, sizeof(__pyx_k_ATR), 0, 0, 1, 1},
  {&__pyx_n_s_AVGPRICE, __pyx_k_AVGPRICE, sizeof(__pyx_k_AVGPRICE), 0, 0, 1, 1},
  {&__pyx_n_s_AllCandleSettings, __pyx_k_AllCandleSettings, sizeof(__pyx_k_AllCandleSettings), 0, 0, 1, 1},
  {&__pyx_kp_s_Allocation_Error_TA_ALLOC_ERR, __pyx_k_Allocation_Error_TA_ALLOC_ERR, sizeof(__pyx_k_Allocation_Error_TA_ALLOC_ERR), 0, 0, 1, 0},
  {&__pyx_n_s_BBANDS, __pyx_k_BBANDS, sizeof(__pyx_k_BBANDS), 0, 0, 1, 1},
  {&__pyx_n_s_BETA, __pyx_k_BETA, sizeof(__pyx_k_BETA), 0, 0, 1, 1},
  {&__pyx_n_s_BOP, __pyx_k_BOP, sizeof(__pyx_k_BOP), 0, 0, 1, 1},
  {&__pyx_kp_s_Bad_Object_TA_BAD_OBJECT, __pyx_k_Bad_Object_TA_BAD_OBJECT, sizeof(__pyx_k_Bad_Object_TA_BAD_OBJECT), 0, 0, 1, 0},
  {&__pyx_kp_s_Bad_Parameter_TA_BAD_PARAM, __pyx_k_Bad_Parameter_TA_BAD_PARAM, sizeof(__pyx_k_Bad_Parameter_TA_BAD_PARAM), 0, 0, 1, 0},
  {&__pyx_n_s_BodyDoji, __pyx_k_BodyDoji, sizeof(__pyx_k_BodyDoji), 0, 0, 1, 1},
  {&__pyx_n_s_BodyLong, __pyx_k_BodyLong, sizeof(__pyx_k_BodyLong), 0, 0, 1, 1},
  {&__pyx_n_s_BodyShort, __pyx_k_BodyShort, sizeof(__pyx_k_BodyShort), 0, 0, 1, 1},
  {&__pyx_n_s_BodyVeryLong, __pyx_k_BodyVeryLong, sizeof(__pyx_k_BodyVeryLong), 0, 0, 1, 1},
  {&__pyx_kp_s_Bull_Bear_Pattern_Bearish_0_Neut, __pyx_k_Bull_Bear_Pattern_Bearish_0_Neut, sizeof(__pyx_k_Bull_Bear_Pattern_Bearish_0_Neut), 0, 0, 1, 0},
  {&__pyx_n_s_CCI, __pyx_k_CCI, sizeof(__pyx_k_CCI), 0, 0, 1, 1},
  {&__pyx_n_s_CDL2CROWS, __pyx_k_CDL2CROWS, sizeof(__pyx_k_CDL2CROWS), 0, 0, 1, 1},
  {&__pyx_n_s_CDL3BLACKCROWS, __pyx_k_CDL3BLACKCROWS, sizeof(__pyx_k_CDL3BLACKCROWS), 0, 0, 1, 1},
  {&__pyx_n_s_CDL3INSIDE, __pyx_k_CDL3INSIDE, sizeof(__pyx_k_CDL3INSIDE), 0, 0, 1, 1},
  {&__pyx_n_s_CDL3LINESTRIKE, __pyx_k_CDL3LINESTRIKE, sizeof(__pyx_k_CDL3LINESTRIKE), 0, 0, 1, 1},
  {&__pyx_n_s_CDL3OUTSIDE, __pyx_k_CDL3OUTSIDE, sizeof(__pyx_k_CDL3OUTSIDE), 0, 0, 1, 1},
  {&__pyx_n_s_CDL3STARSINSOUTH, __pyx_k_CDL3STARSINSOUTH, sizeof(__pyx_k_CDL3STARSINSOUTH), 0, 0, 1, 1},
  {&__pyx_n_s_CDL3WHITESOLDIERS, __pyx_k_CDL3WHITESOLDIERS, sizeof(__pyx_k_CDL3WHITESOLDIERS), 0, 0, 1, 1},
  {&__pyx_n_s_CDLABANDONEDBABY, __pyx_k_CDLABANDONEDBABY, sizeof(__pyx_k_CDLABANDONEDBABY), 0, 0, 1, 1},
  {&__pyx_n_s_CDLADVANCEBLOCK, __pyx_k_CDLADVANCEBLOCK, sizeof(__pyx_k_CDLADVANCEBLOCK), 0, 0, 1, 1},
  {&__pyx_n_s_CDLBELTHOLD, __pyx_k_CDLBELTHOLD, sizeof(__pyx_k_CDLBELTHOLD), 0, 0, 1, 1},
  {&__pyx_n_s_CDLBREAKAWAY, __pyx_k_CDLBREAKAWAY, sizeof(__pyx_k_CDLBREAKAWAY), 0, 0, 1, 1},
  {&__pyx_n_s_CDLCLOSINGMARUBOZU, __pyx_k_CDLCLOSINGMARUBOZU, sizeof(__pyx_k_CDLCLOSINGMARUBOZU), 0, 0, 1, 1},
  {&__pyx_n_s_CDLCONCEALBABYSWALL, __pyx_k_CDLCONCEALBABYSWALL, sizeof(__pyx_k_CDLCONCEALBABYSWALL), 0, 0, 1, 1},
  {&__pyx_n_s_CDLCOUNTERATTACK, __pyx_k_CDLCOUNTERATTACK, sizeof(__pyx_k_CDLCOUNTERATTACK), 0, 0, 1, 1},
  {&__pyx_n_s_CDLDARKCLOUDCOVER, __pyx_k_CDLDARKCLOUDCOVER, sizeof(__pyx_k_CDLDARKCLOUDCOVER), 0, 0, 1, 1},
  {&__pyx_n_s_CDLDOJI, __pyx_k_CDLDOJI, sizeof(__pyx_k_CDLDOJI), 0, 0, 1, 1},
  {&__pyx_n_s_CDLDOJISTAR, __pyx_k_CDLDOJISTAR, sizeof(__pyx_k_CDLDOJISTAR), 0, 0, 1, 1},
  {&__pyx_n_s_CDLDRAGONFLYDOJI, __pyx_k_CDLDRAGONFLYDOJI, sizeof(__pyx_k_CDLDRAGONFLYDOJI), 0, 0, 1, 1},
  {&__pyx_n_s_CDLENGULFING, __pyx_k_CDLENGULFING, sizeof(__pyx_k_CDLENGULFING), 0, 0, 1, 1},
  {&__pyx_n_s_CDLEVENINGDOJISTAR, __pyx_k_CDLEVENINGDOJISTAR, sizeof(__pyx_k_CDLEVENINGDOJISTAR), 0, 0, 1, 1},
  {&__pyx_n_s_CDLEVENINGSTAR, __pyx_k_CDLEVENINGSTAR, sizeof(__pyx_k_CDLEVENINGSTAR), 0, 0, 1, 1},
  {&__pyx_n_s_CDLGAPSIDESIDEWHITE, __pyx_k_CDLGAPSIDESIDEWHITE, sizeof(__pyx_k_CDLGAPSIDESIDEWHITE), 0, 0, 1, 1},
  {&__pyx_n_s_CDLGRAVESTONEDOJI, __pyx_k_CDLGRAVESTONEDOJI, sizeof(__pyx_k_CDLGRAVESTONEDOJI), 0, 0, 1, 1},
  {&__pyx_n_s_CDLHAMMER, __pyx_k_CDLHAMMER, sizeof(__pyx_k_CDLHAMMER), 0, 0, 1, 1},
  {&__pyx_n_s_CDLHANGINGMAN, __pyx_k_CDLHANGINGMAN, sizeof(__pyx_k_CDLHANGINGMAN), 0, 0, 1, 1},
  {&__pyx_n_s_CDLHARAMI, __pyx_k_CDLHARAMI, sizeof(__pyx_k_CDLHARAMI), 0, 0, 1, 1},
  {&__pyx_n_s_CDLHARAMICROSS, __pyx_k_CDLHARAMICROSS, sizeof(__pyx_k_CDLHARAMICROSS), 0, 0, 1, 1},
  {&__pyx_n_s_CDLHIGHWAVE, __pyx_k_CDLHIGHWAVE, sizeof(__pyx_k_CDLHIGHWAVE), 0, 0, 1, 1},
  {&__pyx_n_s_CDLHIKKAKE, __pyx_k_CDLHIKKAKE, sizeof(__pyx_k_CDLHIKKAKE), 0, 0, 1, 1},
  {&__pyx_n_s_CDLHIKKAKEMOD, __pyx_k_CDLHIKKAKEMOD, sizeof(__pyx_k_CDLHIKKAKEMOD), 0, 0, 1, 1},
  {&__pyx_n_s_CDLHOMINGPIGEON, __pyx_k_CDLHOMINGPIGEON, sizeof(__pyx_k_CDLHOMINGPIGEON), 0, 0, 1, 1},
  {&__pyx_n_s_CDLIDENTICAL3CROWS, __pyx_k_CDLIDENTICAL3CROWS, sizeof(__pyx_k_CDLIDENTICAL3CROWS), 0, 0, 1, 1},
  {&__pyx_n_s_CDLINNECK, __pyx_k_CDLINNECK, sizeof(__pyx_k_CDLINNECK), 0, 0, 1, 1},
  {&__pyx_n_s_CDLINVERTEDHAMMER, __pyx_k_CDLINVERTEDHAMMER, sizeof(__pyx_k_CDLINVERTEDHAMMER), 0, 0, 1, 1},
  {&__pyx_n_s_CDLKICKING, __pyx_k_CDLKICKING, sizeof(__pyx_k_CDLKICKING), 0, 0, 1, 1},
  {&__pyx_n_s_CDLKICKINGBYLENGTH, __pyx_k_CDLKICKINGBYLENGTH, sizeof(__pyx_k_CDLKICKINGBYLENGTH), 0, 0, 1, 1},
  {&__pyx_n_s_CDLLADDERBOTTOM, __pyx_k_CDLLADDERBOTTOM, sizeof(__pyx_k_CDLLADDERBOTTOM), 0, 0, 1, 1},
  {&__pyx_n_s_CDLLONGLEGGEDDOJI, __pyx_k_CDLLONGLEGGEDDOJI, sizeof(__pyx_k_CDLLONGLEGGEDDOJI), 0, 0, 1, 1},
  {&__pyx_n_s_CDLLONGLINE, __pyx_k_CDLLONGLINE, sizeof(__pyx_k_CDLLONGLINE), 0, 0, 1, 1},
  {&__pyx_n_s_CDLMARUBOZU, __pyx_k_CDLMARUBOZU, sizeof(__pyx_k_CDLMARUBOZU), 0, 0, 1, 1},
  {&__pyx_n_s_CDLMATCHINGLOW, __pyx_k_CDLMATCHINGLOW, sizeof(__pyx_k_CDLMATCHINGLOW), 0, 0, 1, 1},
  {&__pyx_n_s_CDLMATHOLD, __pyx_k_CDLMATHOLD, sizeof(__pyx_k_CDLMATHOLD), 0, 0, 1, 1},
  {&__pyx_n_s_CDLMORNINGDOJISTAR, __pyx_k_CDLMORNINGDOJISTAR, sizeof(__pyx_k_CDLMORNINGDOJISTAR), 0, 0, 1, 1},
  {&__pyx_n_s_CDLMORNINGSTAR, __pyx_k_CDLMORNINGSTAR, sizeof(__pyx_k_CDLMORNINGSTAR), 0, 0, 1, 1},
  {&__pyx_n_s_CDLONNECK, __pyx_k_CDLONNECK, sizeof(__pyx_k_CDLONNECK), 0, 0, 1, 1},
  {&__pyx_n_s_CDLPIERCING, __pyx_k_CDLPIERCING, sizeof(__pyx_k_CDLPIERCING), 0, 0, 1, 1},
  {&__pyx_n_s_CDLRICKSHAWMAN, __pyx_k_CDLRICKSHAWMAN, sizeof(__pyx_k_CDLRICKSHAWMAN), 0, 0, 1, 1},
  {&__pyx_n_s_CDLRISEFALL3METHODS, __pyx_k_CDLRISEFALL3METHODS, sizeof(__pyx_k_CDLRISEFALL3METHODS), 0, 0, 1, 1},
  {&__pyx_n_s_CDLSEPARATINGLINES, __pyx_k_CDLSEPARATINGLINES, sizeof(__pyx_k_CDLSEPARATINGLINES), 0, 0, 1, 1},
  {&__pyx_n_s_CDLSHOOTINGSTAR, __pyx_k_CDLSHOOTINGSTAR, sizeof(__pyx_k_CDLSHOOTINGSTAR), 0, 0, 1, 1},
  {&__pyx_n_s_CDLSHORTLINE, __pyx_k_CDLSHORTLINE, sizeof(__pyx_k_CDLSHORTLINE), 0, 0, 1, 1},
  {&__pyx_n_s_CDLSPINNINGTOP, __pyx_k_CDLSPINNINGTOP, sizeof(__pyx_k_CDLSPINNINGTOP), 0, 0, 1, 1},
  {&__pyx_n_s_CDLSTALLEDPATTERN, __pyx_k_CDLSTALLEDPATTERN, sizeof(__pyx_k_CDLSTALLEDPATTERN), 0, 0, 1, 1},
  {&__pyx_n_s_CDLSTICKSANDWICH, __pyx_k_CDLSTICKSANDWICH, sizeof(__pyx_k_CDLSTICKSANDWICH), 0, 0, 1, 1},
  {&__pyx_n_s_CDLTAKURI, __pyx_k_CDLTAKURI, sizeof(__pyx_k_CDLTAKURI), 0, 0, 1, 1},
  {&__pyx_n_s_CDLTASUKIGAP, __pyx_k_CDLTASUKIGAP, sizeof(__pyx_k_CDLTASUKIGAP), 0, 0, 1, 1},
  {&__pyx_n_s_CDLTHRUSTING, __pyx_k_CDLTHRUSTING, sizeof(__pyx_k_CDLTHRUSTING), 0, 0, 1, 1},
  {&__pyx_n_s_CDLTRISTAR, __pyx_k_CDLTRISTAR, sizeof(__pyx_k_CDLTRISTAR), 0, 0, 1, 1},
  {&__pyx_n_s_CDLUNIQUE3RIVER, __pyx_k_CDLUNIQUE3RIVER, sizeof(__pyx_k_CDLUNIQUE3RIVER), 0, 0, 1, 1},
  {&__pyx_n_s_CDLUPSIDEGAP2CROWS, __pyx_k_CDLUPSIDEGAP2CROWS, sizeof(__pyx_k_CDLUPSIDEGAP2CROWS), 0, 0, 1, 1},
  {&__pyx_n_s_CDLXSIDEGAP3METHODS, __pyx_k_CDLXSIDEGAP3METHODS, sizeof(__pyx_k_CDLXSIDEGAP3METHODS), 0, 0, 1, 1},
  {&__pyx_n_s_CEIL, __pyx_k_CEIL, sizeof(__pyx_k_CEIL), 0, 0, 1, 1},
  {&__pyx_n_s_CMO, __pyx_k_CMO, sizeof(__pyx_k_CMO), 0, 0, 1, 1},
  {&__pyx_n_s_CORREL, __pyx_k_CORREL, sizeof(__pyx_k_CORREL), 0, 0, 1, 1},
  {&__pyx_n_s_COS, __pyx_k_COS, sizeof(__pyx_k_COS), 0, 0, 1, 1},
  {&__pyx_n_s_COSH, __pyx_k_COSH, sizeof(__pyx_k_COSH), 0, 0, 1, 1},
  {&__pyx_n_s_CandleSettingType, __pyx_k_CandleSettingType, sizeof(__pyx_k_CandleSettingType), 0, 0, 1, 1},
  {&__pyx_n_s_DEMA, __pyx_k_DEMA, sizeof(__pyx_k_DEMA), 0, 0, 1, 1},
  {&__pyx_n_s_DIV, __pyx_k_DIV, sizeof(__pyx_k_DIV), 0, 0, 1, 1},
  {&__pyx_n_s_DX, __pyx_k_DX, sizeof(__pyx_k_DX), 0, 0, 1, 1},
  {&__pyx_kp_s_Dashed_Line, __pyx_k_Dashed_Line, sizeof(__pyx_k_Dashed_Line), 0, 0, 1, 0},
  {&__pyx_n_s_DataFrame, __pyx_k_DataFrame, sizeof(__pyx_k_DataFrame), 0, 0, 1, 1},
  {&__pyx_n_s_Dot, __pyx_k_Dot, sizeof(__pyx_k_Dot), 0, 0, 1, 1},
  {&__pyx_kp_s_Dotted_Line, __pyx_k_Dotted_Line, sizeof(__pyx_k_Dotted_Line), 0, 0, 1, 0},
  {&__pyx_kp_s_Double_Exponential_Moving_Averag, __pyx_k_Double_Exponential_Moving_Averag, sizeof(__pyx_k_Double_Exponential_Moving_Averag), 0, 0, 1, 0},
  {&__pyx_n_s_EMA, __pyx_k_EMA, sizeof(__pyx_k_EMA), 0, 0, 1, 1},
  {&__pyx_n_s_EXP, __pyx_k_EXP, sizeof(__pyx_k_EXP), 0, 0, 1, 1},
  {&__pyx_n_s_Equal, __pyx_k_Equal, sizeof(__pyx_k_Equal), 0, 0, 1, 1},
  {&__pyx_kp_s_Exponential_Moving_Average, __pyx_k_Exponential_Moving_Average, sizeof(__pyx_k_Exponential_Moving_Average), 0, 0, 1, 0},
  {&__pyx_n_s_FLOOR, __pyx_k_FLOOR, sizeof(__pyx_k_FLOOR), 0, 0, 1, 1},
  {&__pyx_n_s_Far, __pyx_k_Far, sizeof(__pyx_k_Far), 0, 0, 1, 1},
  {&__pyx_n_s_Function, __pyx_k_Function, sizeof(__pyx_k_Function), 0, 0, 1, 1},
  {&__pyx_kp_s_Function_Not_Found_TA_FUNC_NOT_F, __pyx_k_Function_Not_Found_TA_FUNC_NOT_F, sizeof(__pyx_k_Function_Not_Found_TA_FUNC_NOT_F), 0, 0, 1, 0},
  {&__pyx_n_s_Function___call, __pyx_k_Function___call, sizeof(__pyx_k_Function___call), 0, 0, 1, 1},
  {&__pyx_n_s_Function___call_function, __pyx_k_Function___call_function, sizeof(__pyx_k_Function___call_function), 0, 0, 1, 1},
  {&__pyx_n_s_Function___check_opt_input_value, __pyx_k_Function___check_opt_input_value, sizeof(__pyx_k_Function___check_opt_input_value), 0, 0, 1, 1},
  {&__pyx_n_s_Function___get_opt_input_value, __pyx_k_Function___get_opt_input_value, sizeof(__pyx_k_Function___get_opt_input_value), 0, 0, 1, 1},
  {&__pyx_n_s_Function___init, __pyx_k_Function___init, sizeof(__pyx_k_Function___init), 0, 0, 1, 1},
  {&__pyx_n_s_Function___initialize_function_i, __pyx_k_Function___initialize_function_i, sizeof(__pyx_k_Function___initialize_function_i), 0, 0, 1, 1},
  {&__pyx_n_s_Function___input_price_series_na, __pyx_k_Function___input_price_series_na, sizeof(__pyx_k_Function___input_price_series_na), 0, 0, 1, 1},
  {&__pyx_n_s_Function___repr, __pyx_k_Function___repr, sizeof(__pyx_k_Function___repr), 0, 0, 1, 1},
  {&__pyx_n_s_Function___str, __pyx_k_Function___str, sizeof(__pyx_k_Function___str), 0, 0, 1, 1},
  {&__pyx_n_s_Function___unicode, __pyx_k_Function___unicode, sizeof(__pyx_k_Function___unicode), 0, 0, 1, 1},
  {&__pyx_n_s_Function__call_function, __pyx_k_Function__call_function, sizeof(__pyx_k_Function__call_function), 0, 0, 1, 1},
  {&__pyx_n_s_Function__check_opt_input_value, __pyx_k_Function__check_opt_input_value, sizeof(__pyx_k_Function__check_opt_input_value), 0, 0, 1, 1},
  {&__pyx_n_s_Function__get_opt_input_value, __pyx_k_Function__get_opt_input_value, sizeof(__pyx_k_Function__get_opt_input_value), 0, 0, 1, 1},
  {&__pyx_n_s_Function__info, __pyx_k_Function__info, sizeof(__pyx_k_Function__info), 0, 0, 1, 1},
  {&__pyx_n_s_Function__initialize_function_i, __pyx_k_Function__initialize_function_i, sizeof(__pyx_k_Function__initialize_function_i), 0, 0, 1, 1},
  {&__pyx_n_s_Function__input_arrays, __pyx_k_Function__input_arrays, sizeof(__pyx_k_Function__input_arrays), 0, 0, 1, 1},
  {&__pyx_n_s_Function__input_names, __pyx_k_Function__input_names, sizeof(__pyx_k_Function__input_names), 0, 0, 1, 1},
  {&__pyx_n_s_Function__input_price_series_na, __pyx_k_Function__input_price_series_na, sizeof(__pyx_k_Function__input_price_series_na), 0, 0, 1, 1},
  {&__pyx_n_s_Function__name, __pyx_k_Function__name, sizeof(__pyx_k_Function__name), 0, 0, 1, 1},
  {&__pyx_n_s_Function__namestr, __pyx_k_Function__namestr, sizeof(__pyx_k_Function__namestr), 0, 0, 1, 1},
  {&__pyx_n_s_Function__opt_inputs, __pyx_k_Function__opt_inputs, sizeof(__pyx_k_Function__opt_inputs), 0, 0, 1, 1},
  {&__pyx_n_s_Function__outputs, __pyx_k_Function__outputs, sizeof(__pyx_k_Function__outputs), 0, 0, 1, 1},
  {&__pyx_n_s_Function__outputs_valid, __pyx_k_Function__outputs_valid, sizeof(__pyx_k_Function__outputs_valid), 0, 0, 1, 1},
  {&__pyx_n_s_Function_function_flags, __pyx_k_Function_function_flags, sizeof(__pyx_k_Function_function_flags), 0, 0, 1, 1},
  {&__pyx_n_s_Function_get_input_arrays, __pyx_k_Function_get_input_arrays, sizeof(__pyx_k_Function_get_input_arrays), 0, 0, 1, 1},
  {&__pyx_n_s_Function_get_input_names, __pyx_k_Function_get_input_names, sizeof(__pyx_k_Function_get_input_names), 0, 0, 1, 1},
  {&__pyx_n_s_Function_get_parameters, __pyx_k_Function_get_parameters, sizeof(__pyx_k_Function_get_parameters), 0, 0, 1, 1},
  {&__pyx_kp_s_Function_has_an_unstable_period, __pyx_k_Function_has_an_unstable_period, sizeof(__pyx_k_Function_has_an_unstable_period), 0, 0, 1, 0},
  {&__pyx_n_s_Function_info, __pyx_k_Function_info, sizeof(__pyx_k_Function_info), 0, 0, 1, 1},
  {&__pyx_n_s_Function_lookback, __pyx_k_Function_lookback, sizeof(__pyx_k_Function_lookback), 0, 0, 1, 1},
  {&__pyx_n_s_Function_output_flags, __pyx_k_Function_output_flags, sizeof(__pyx_k_Function_output_flags), 0, 0, 1, 1},
  {&__pyx_n_s_Function_output_names, __pyx_k_Function_output_names, sizeof(__pyx_k_Function_output_names), 0, 0, 1, 1},
  {&__pyx_n_s_Function_outputs, __pyx_k_Function_outputs, sizeof(__pyx_k_Function_outputs), 0, 0, 1, 1},
  {&__pyx_n_s_Function_run, __pyx_k_Function_run, sizeof(__pyx_k_Function_run), 0, 0, 1, 1},
  {&__pyx_n_s_Function_set_function_args, __pyx_k_Function_set_function_args, sizeof(__pyx_k_Function_set_function_args), 0, 0, 1, 1},
  {&__pyx_n_s_Function_set_input_arrays, __pyx_k_Function_set_input_arrays, sizeof(__pyx_k_Function_set_input_arrays), 0, 0, 1, 1},
  {&__pyx_n_s_Function_set_input_names, __pyx_k_Function_set_input_names, sizeof(__pyx_k_Function_set_input_names), 0, 0, 1, 1},
  {&__pyx_n_s_Function_set_parameters, __pyx_k_Function_set_parameters, sizeof(__pyx_k_Function_set_parameters), 0, 0, 1, 1},
  {&__pyx_kp_s_Group_Not_Found_TA_GROUP_NOT_FOU, __pyx_k_Group_Not_Found_TA_GROUP_NOT_FOU, sizeof(__pyx_k_Group_Not_Found_TA_GROUP_NOT_FOU), 0, 0, 1, 0},
  {&__pyx_n_s_HT_DCPERIOD, __pyx_k_HT_DCPERIOD, sizeof(__pyx_k_HT_DCPERIOD), 0, 0, 1, 1},
  {&__pyx_n_s_HT_DCPHASE, __pyx_k_HT_DCPHASE, sizeof(__pyx_k_HT_DCPHASE), 0, 0, 1, 1},
  {&__pyx_n_s_HT_PHASOR, __pyx_k_HT_PHASOR, sizeof(__pyx_k_HT_PHASOR), 0, 0, 1, 1},
  {&__pyx_n_s_HT_SINE, __pyx_k_HT_SINE, sizeof(__pyx_k_HT_SINE), 0, 0, 1, 1},
  {&__pyx_n_s_HT_TRENDLINE, __pyx_k_HT_TRENDLINE, sizeof(__pyx_k_HT_TRENDLINE), 0, 0, 1, 1},
  {&__pyx_n_s_HT_TRENDMODE, __pyx_k_HT_TRENDMODE, sizeof(__pyx_k_HT_TRENDMODE), 0, 0, 1, 1},
  {&__pyx_n_s_HighLow, __pyx_k_HighLow, sizeof(__pyx_k_HighLow), 0, 0, 1, 1},
  {&__pyx_n_s_Histogram, __pyx_k_Histogram, sizeof(__pyx_k_Histogram), 0, 0, 1, 1},
  {&__pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_k_INPUT_ARRAYS_TYPES, sizeof(__pyx_k_INPUT_ARRAYS_TYPES), 0, 0, 1, 1},
  {&__pyx_n_s_INPUT_PRICE_SERIES_DEFAULTS, __pyx_k_INPUT_PRICE_SERIES_DEFAULTS, sizeof(__pyx_k_INPUT_PRICE_SERIES_DEFAULTS), 0, 0, 1, 1},
  {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
  {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1},
  {&__pyx_kp_s_Input_Not_All_Initialized_TA_INP, __pyx_k_Input_Not_All_Initialized_TA_INP, sizeof(__pyx_k_Input_Not_All_Initialized_TA_INP), 0, 0, 1, 0},
  {&__pyx_kp_s_Inputs, __pyx_k_Inputs, sizeof(__pyx_k_Inputs), 0, 0, 1, 0},
  {&__pyx_kp_s_Internal_Error_TA_INTERNAL_ERROR, __pyx_k_Internal_Error_TA_INTERNAL_ERROR, sizeof(__pyx_k_Internal_Error_TA_INTERNAL_ERROR), 0, 0, 1, 0},
  {&__pyx_kp_s_Invalid_Handle_TA_INVALID_HANDLE, __pyx_k_Invalid_Handle_TA_INVALID_HANDLE, sizeof(__pyx_k_Invalid_Handle_TA_INVALID_HANDLE), 0, 0, 1, 0},
  {&__pyx_kp_s_Invalid_List_Type_TA_INVALID_LIS, __pyx_k_Invalid_List_Type_TA_INVALID_LIS, sizeof(__pyx_k_Invalid_List_Type_TA_INVALID_LIS), 0, 0, 1, 0},
  {&__pyx_kp_s_Invalid_Parameter_Function_TA_IN, __pyx_k_Invalid_Parameter_Function_TA_IN, sizeof(__pyx_k_Invalid_Parameter_Function_TA_IN), 0, 0, 1, 0},
  {&__pyx_kp_s_Invalid_Parameter_Holder_TA_INVA, __pyx_k_Invalid_Parameter_Holder_TA_INVA, sizeof(__pyx_k_Invalid_Parameter_Holder_TA_INVA), 0, 0, 1, 0},
  {&__pyx_kp_s_Invalid_Parameter_Holder_Type_TA, __pyx_k_Invalid_Parameter_Holder_Type_TA, sizeof(__pyx_k_Invalid_Parameter_Holder_Type_TA), 0, 0, 1, 0},
  {&__pyx_kp_s_Invalid_parameter_value_for_s_ex, __pyx_k_Invalid_parameter_value_for_s_ex, sizeof(__pyx_k_Invalid_parameter_value_for_s_ex), 0, 0, 1, 0},
  {&__pyx_n_s_KAMA, __pyx_k_KAMA, sizeof(__pyx_k_KAMA), 0, 0, 1, 1},
  {&__pyx_kp_s_Kaufman_Adaptive_Moving_Average, __pyx_k_Kaufman_Adaptive_Moving_Average, sizeof(__pyx_k_Kaufman_Adaptive_Moving_Average), 0, 0, 1, 0},
  {&__pyx_n_s_LINEARREG, __pyx_k_LINEARREG, sizeof(__pyx_k_LINEARREG), 0, 0, 1, 1},
  {&__pyx_n_s_LINEARREG_ANGLE, __pyx_k_LINEARREG_ANGLE, sizeof(__pyx_k_LINEARREG_ANGLE), 0, 0, 1, 1},
  {&__pyx_n_s_LINEARREG_INTERCEPT, __pyx_k_LINEARREG_INTERCEPT, sizeof(__pyx_k_LINEARREG_INTERCEPT), 0, 0, 1, 1},
  {&__pyx_n_s_LINEARREG_SLOPE, __pyx_k_LINEARREG_SLOPE, sizeof(__pyx_k_LINEARREG_SLOPE), 0, 0, 1, 1},
  {&__pyx_n_s_LN, __pyx_k_LN, sizeof(__pyx_k_LN), 0, 0, 1, 1},
  {&__pyx_n_s_LOG10, __pyx_k_LOG10, sizeof(__pyx_k_LOG10), 0, 0, 1, 1},
  {&__pyx_kp_s_Library_Not_Initialized_TA_LIB_N, __pyx_k_Library_Not_Initialized_TA_LIB_N, sizeof(__pyx_k_Library_Not_Initialized_TA_LIB_N), 0, 0, 1, 0},
  {&__pyx_n_s_Line, __pyx_k_Line, sizeof(__pyx_k_Line), 0, 0, 1, 1},
  {&__pyx_n_s_MA, __pyx_k_MA, sizeof(__pyx_k_MA), 0, 0, 1, 1},
  {&__pyx_n_s_MACD, __pyx_k_MACD, sizeof(__pyx_k_MACD), 0, 0, 1, 1},
  {&__pyx_n_s_MACDEXT, __pyx_k_MACDEXT, sizeof(__pyx_k_MACDEXT), 0, 0, 1, 1},
  {&__pyx_n_s_MACDFIX, __pyx_k_MACDFIX, sizeof(__pyx_k_MACDFIX), 0, 0, 1, 1},
  {&__pyx_n_s_MAMA, __pyx_k_MAMA, sizeof(__pyx_k_MAMA), 0, 0, 1, 1},
  {&__pyx_n_s_MAVP, __pyx_k_MAVP, sizeof(__pyx_k_MAVP), 0, 0, 1, 1},
  {&__pyx_n_s_MAX, __pyx_k_MAX, sizeof(__pyx_k_MAX), 0, 0, 1, 1},
  {&__pyx_n_s_MAXINDEX, __pyx_k_MAXINDEX, sizeof(__pyx_k_MAXINDEX), 0, 0, 1, 1},
  {&__pyx_n_s_MA_Type, __pyx_k_MA_Type, sizeof(__pyx_k_MA_Type), 0, 0, 1, 1},
  {&__pyx_n_s_MA_Type___getitem, __pyx_k_MA_Type___getitem, sizeof(__pyx_k_MA_Type___getitem), 0, 0, 1, 1},
  {&__pyx_n_s_MA_Type___init, __pyx_k_MA_Type___init, sizeof(__pyx_k_MA_Type___init), 0, 0, 1, 1},
  {&__pyx_n_s_MEDPRICE, __pyx_k_MEDPRICE, sizeof(__pyx_k_MEDPRICE), 0, 0, 1, 1},
  {&__pyx_kp_s_MESA_Adaptive_Moving_Average, __pyx_k_MESA_Adaptive_Moving_Average, sizeof(__pyx_k_MESA_Adaptive_Moving_Average), 0, 0, 1, 0},
  {&__pyx_n_s_MFI, __pyx_k_MFI, sizeof(__pyx_k_MFI), 0, 0, 1, 1},
  {&__pyx_n_s_MIDPOINT, __pyx_k_MIDPOINT, sizeof(__pyx_k_MIDPOINT), 0, 0, 1, 1},
  {&__pyx_n_s_MIDPRICE, __pyx_k_MIDPRICE, sizeof(__pyx_k_MIDPRICE), 0, 0, 1, 1},
  {&__pyx_n_s_MIN, __pyx_k_MIN, sizeof(__pyx_k_MIN), 0, 0, 1, 1},
  {&__pyx_n_s_MININDEX, __pyx_k_MININDEX, sizeof(__pyx_k_MININDEX), 0, 0, 1, 1},
  {&__pyx_n_s_MINMAX, __pyx_k_MINMAX, sizeof(__pyx_k_MINMAX), 0, 0, 1, 1},
  {&__pyx_n_s_MINMAXINDEX, __pyx_k_MINMAXINDEX, sizeof(__pyx_k_MINMAXINDEX), 0, 0, 1, 1},
  {&__pyx_n_s_MINUS_DI, __pyx_k_MINUS_DI, sizeof(__pyx_k_MINUS_DI), 0, 0, 1, 1},
  {&__pyx_n_s_MINUS_DM, __pyx_k_MINUS_DM, sizeof(__pyx_k_MINUS_DM), 0, 0, 1, 1},
  {&__pyx_n_s_MOM, __pyx_k_MOM, sizeof(__pyx_k_MOM), 0, 0, 1, 1},
  {&__pyx_n_s_MULT, __pyx_k_MULT, sizeof(__pyx_k_MULT), 0, 0, 1, 1},
  {&__pyx_n_s_NATR, __pyx_k_NATR, sizeof(__pyx_k_NATR), 0, 0, 1, 1},
  {&__pyx_n_s_NONE, __pyx_k_NONE, sizeof(__pyx_k_NONE), 0, 0, 1, 1},
  {&__pyx_n_s_Near, __pyx_k_Near, sizeof(__pyx_k_Near), 0, 0, 1, 1},
  {&__pyx_kp_s_Not_Supported_TA_NOT_SUPPORTED, __pyx_k_Not_Supported_TA_NOT_SUPPORTED, sizeof(__pyx_k_Not_Supported_TA_NOT_SUPPORTED), 0, 0, 1, 0},
  {&__pyx_kp_s_Not_enough_price_arguments_expec, __pyx_k_Not_enough_price_arguments_expec, sizeof(__pyx_k_Not_enough_price_arguments_expec), 0, 0, 1, 0},
  {&__pyx_n_s_OBV, __pyx_k_OBV, sizeof(__pyx_k_OBV), 0, 0, 1, 1},
  {&__pyx_n_s_OrderedDict, __pyx_k_OrderedDict, sizeof(__pyx_k_OrderedDict), 0, 0, 1, 1},
  {&__pyx_kp_s_Out_of_Range_End_Index_TA_OUT_OF, __pyx_k_Out_of_Range_End_Index_TA_OUT_OF, sizeof(__pyx_k_Out_of_Range_End_Index_TA_OUT_OF), 0, 0, 1, 0},
  {&__pyx_kp_s_Out_of_Range_Start_Index_TA_OUT, __pyx_k_Out_of_Range_Start_Index_TA_OUT, sizeof(__pyx_k_Out_of_Range_Start_Index_TA_OUT), 0, 0, 1, 0},
  {&__pyx_kp_s_Output_Not_All_Initialized_TA_OU, __pyx_k_Output_Not_All_Initialized_TA_OU, sizeof(__pyx_k_Output_Not_All_Initialized_TA_OU), 0, 0, 1, 0},
  {&__pyx_kp_s_Output_can_be_negative, __pyx_k_Output_can_be_negative, sizeof(__pyx_k_Output_can_be_negative), 0, 0, 1, 0},
  {&__pyx_kp_s_Output_can_be_positive, __pyx_k_Output_can_be_positive, sizeof(__pyx_k_Output_can_be_positive), 0, 0, 1, 0},
  {&__pyx_kp_s_Output_can_be_zero, __pyx_k_Output_can_be_zero, sizeof(__pyx_k_Output_can_be_zero), 0, 0, 1, 0},
  {&__pyx_kp_s_Output_is_a_candlestick, __pyx_k_Output_is_a_candlestick, sizeof(__pyx_k_Output_is_a_candlestick), 0, 0, 1, 0},
  {&__pyx_kp_s_Output_is_over_volume, __pyx_k_Output_is_over_volume, sizeof(__pyx_k_Output_is_over_volume), 0, 0, 1, 0},
  {&__pyx_kp_s_Output_scale_same_as_input, __pyx_k_Output_scale_same_as_input, sizeof(__pyx_k_Output_scale_same_as_input), 0, 0, 1, 0},
  {&__pyx_kp_s_Outputs, __pyx_k_Outputs, sizeof(__pyx_k_Outputs), 0, 0, 1, 0},
  {&__pyx_n_s_PANDAS_DATAFRAME, __pyx_k_PANDAS_DATAFRAME, sizeof(__pyx_k_PANDAS_DATAFRAME), 0, 0, 1, 1},
  {&__pyx_n_s_PANDAS_SERIES, __pyx_k_PANDAS_SERIES, sizeof(__pyx_k_PANDAS_SERIES), 0, 0, 1, 1},
  {&__pyx_n_s_PLUS_DI, __pyx_k_PLUS_DI, sizeof(__pyx_k_PLUS_DI), 0, 0, 1, 1},
  {&__pyx_n_s_PLUS_DM, __pyx_k_PLUS_DM, sizeof(__pyx_k_PLUS_DM), 0, 0, 1, 1},
  {&__pyx_n_s_POLARS_DATAFRAME, __pyx_k_POLARS_DATAFRAME, sizeof(__pyx_k_POLARS_DATAFRAME), 0, 0, 1, 1},
  {&__pyx_n_s_POLARS_SERIES, __pyx_k_POLARS_SERIES, sizeof(__pyx_k_POLARS_SERIES), 0, 0, 1, 1},
  {&__pyx_n_s_PPO, __pyx_k_PPO, sizeof(__pyx_k_PPO), 0, 0, 1, 1},
  {&__pyx_kp_s_Parameters, __pyx_k_Parameters, sizeof(__pyx_k_Parameters), 0, 0, 1, 0},
  {&__pyx_kp_s_Pattern_Bool, __pyx_k_Pattern_Bool, sizeof(__pyx_k_Pattern_Bool), 0, 0, 1, 0},
  {&__pyx_n_s_ROC, __pyx_k_ROC, sizeof(__pyx_k_ROC), 0, 0, 1, 1},
  {&__pyx_n_s_ROCP, __pyx_k_ROCP, sizeof(__pyx_k_ROCP), 0, 0, 1, 1},
  {&__pyx_n_s_ROCR, __pyx_k_ROCR, sizeof(__pyx_k_ROCR), 0, 0, 1, 1},
  {&__pyx_n_s_ROCR100, __pyx_k_ROCR100, sizeof(__pyx_k_ROCR100), 0, 0, 1, 1},
  {&__pyx_n_s_RSI, __pyx_k_RSI, sizeof(__pyx_k_RSI), 0, 0, 1, 1},
  {&__pyx_n_s_RangeType, __pyx_k_RangeType, sizeof(__pyx_k_RangeType), 0, 0, 1, 1},
  {&__pyx_n_s_RealBody, __pyx_k_RealBody, sizeof(__pyx_k_RealBody), 0, 0, 1, 1},
  {&__pyx_n_s_SAR, __pyx_k_SAR, sizeof(__pyx_k_SAR), 0, 0, 1, 1},
  {&__pyx_n_s_SAREXT, __pyx_k_SAREXT, sizeof(__pyx_k_SAREXT), 0, 0, 1, 1},
  {&__pyx_n_s_SIN, __pyx_k_SIN, sizeof(__pyx_k_SIN), 0, 0, 1, 1},
  {&__pyx_n_s_SINH, __pyx_k_SINH, sizeof(__pyx_k_SINH), 0, 0, 1, 1},
  {&__pyx_n_s_SMA, __pyx_k_SMA, sizeof(__pyx_k_SMA), 0, 0, 1, 1},
  {&__pyx_n_s_SQRT, __pyx_k_SQRT, sizeof(__pyx_k_SQRT), 0, 0, 1, 1},
  {&__pyx_n_s_STDDEV, __pyx_k_STDDEV, sizeof(__pyx_k_STDDEV), 0, 0, 1, 1},
  {&__pyx_n_s_STOCH, __pyx_k_STOCH, sizeof(__pyx_k_STOCH), 0, 0, 1, 1},
  {&__pyx_n_s_STOCHF, __pyx_k_STOCHF, sizeof(__pyx_k_STOCHF), 0, 0, 1, 1},
  {&__pyx_n_s_STOCHRSI, __pyx_k_STOCHRSI, sizeof(__pyx_k_STOCHRSI), 0, 0, 1, 1},
  {&__pyx_n_s_SUB, __pyx_k_SUB, sizeof(__pyx_k_SUB), 0, 0, 1, 1},
  {&__pyx_n_s_SUM, __pyx_k_SUM, sizeof(__pyx_k_SUM), 0, 0, 1, 1},
  {&__pyx_n_s_Series, __pyx_k_Series, sizeof(__pyx_k_Series), 0, 0, 1, 1},
  {&__pyx_n_s_ShadowLong, __pyx_k_ShadowLong, sizeof(__pyx_k_ShadowLong), 0, 0, 1, 1},
  {&__pyx_n_s_ShadowShort, __pyx_k_ShadowShort, sizeof(__pyx_k_ShadowShort), 0, 0, 1, 1},
  {&__pyx_n_s_ShadowVeryLong, __pyx_k_ShadowVeryLong, sizeof(__pyx_k_ShadowVeryLong), 0, 0, 1, 1},
  {&__pyx_n_s_ShadowVeryShort, __pyx_k_ShadowVeryShort, sizeof(__pyx_k_ShadowVeryShort), 0, 0, 1, 1},
  {&__pyx_n_s_Shadows, __pyx_k_Shadows, sizeof(__pyx_k_Shadows), 0, 0, 1, 1},
  {&__pyx_kp_s_Simple_Moving_Average, __pyx_k_Simple_Moving_Average, sizeof(__pyx_k_Simple_Moving_Average), 0, 0, 1, 0},
  {&__pyx_kp_s_Strength_Pattern_200_100_Bearish, __pyx_k_Strength_Pattern_200_100_Bearish, sizeof(__pyx_k_Strength_Pattern_200_100_Bearish), 0, 0, 1, 0},
  {&__pyx_n_s_T3, __pyx_k_T3, sizeof(__pyx_k_T3), 0, 0, 1, 1},
  {&__pyx_n_s_TAN, __pyx_k_TAN, sizeof(__pyx_k_TAN), 0, 0, 1, 1},
  {&__pyx_n_s_TANH, __pyx_k_TANH, sizeof(__pyx_k_TANH), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ACOS, __pyx_k_TA_ACOS, sizeof(__pyx_k_TA_ACOS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_AD, __pyx_k_TA_AD, sizeof(__pyx_k_TA_AD), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ADD, __pyx_k_TA_ADD, sizeof(__pyx_k_TA_ADD), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ADOSC, __pyx_k_TA_ADOSC, sizeof(__pyx_k_TA_ADOSC), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ADX, __pyx_k_TA_ADX, sizeof(__pyx_k_TA_ADX), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ADXR, __pyx_k_TA_ADXR, sizeof(__pyx_k_TA_ADXR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_APO, __pyx_k_TA_APO, sizeof(__pyx_k_TA_APO), 0, 0, 1, 1},
  {&__pyx_n_s_TA_AROON, __pyx_k_TA_AROON, sizeof(__pyx_k_TA_AROON), 0, 0, 1, 1},
  {&__pyx_n_s_TA_AROONOSC, __pyx_k_TA_AROONOSC, sizeof(__pyx_k_TA_AROONOSC), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ASIN, __pyx_k_TA_ASIN, sizeof(__pyx_k_TA_ASIN), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ATAN, __pyx_k_TA_ATAN, sizeof(__pyx_k_TA_ATAN), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ATR, __pyx_k_TA_ATR, sizeof(__pyx_k_TA_ATR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_AVGPRICE, __pyx_k_TA_AVGPRICE, sizeof(__pyx_k_TA_AVGPRICE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_BBANDS, __pyx_k_TA_BBANDS, sizeof(__pyx_k_TA_BBANDS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_BETA, __pyx_k_TA_BETA, sizeof(__pyx_k_TA_BETA), 0, 0, 1, 1},
  {&__pyx_n_s_TA_BOP, __pyx_k_TA_BOP, sizeof(__pyx_k_TA_BOP), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CCI, __pyx_k_TA_CCI, sizeof(__pyx_k_TA_CCI), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDL2CROWS, __pyx_k_TA_CDL2CROWS, sizeof(__pyx_k_TA_CDL2CROWS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDL3BLACKCROWS, __pyx_k_TA_CDL3BLACKCROWS, sizeof(__pyx_k_TA_CDL3BLACKCROWS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDL3INSIDE, __pyx_k_TA_CDL3INSIDE, sizeof(__pyx_k_TA_CDL3INSIDE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDL3LINESTRIKE, __pyx_k_TA_CDL3LINESTRIKE, sizeof(__pyx_k_TA_CDL3LINESTRIKE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDL3OUTSIDE, __pyx_k_TA_CDL3OUTSIDE, sizeof(__pyx_k_TA_CDL3OUTSIDE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDL3STARSINSOUTH, __pyx_k_TA_CDL3STARSINSOUTH, sizeof(__pyx_k_TA_CDL3STARSINSOUTH), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDL3WHITESOLDIERS, __pyx_k_TA_CDL3WHITESOLDIERS, sizeof(__pyx_k_TA_CDL3WHITESOLDIERS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLABANDONEDBABY, __pyx_k_TA_CDLABANDONEDBABY, sizeof(__pyx_k_TA_CDLABANDONEDBABY), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLADVANCEBLOCK, __pyx_k_TA_CDLADVANCEBLOCK, sizeof(__pyx_k_TA_CDLADVANCEBLOCK), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLBELTHOLD, __pyx_k_TA_CDLBELTHOLD, sizeof(__pyx_k_TA_CDLBELTHOLD), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLBREAKAWAY, __pyx_k_TA_CDLBREAKAWAY, sizeof(__pyx_k_TA_CDLBREAKAWAY), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLCLOSINGMARUBOZU, __pyx_k_TA_CDLCLOSINGMARUBOZU, sizeof(__pyx_k_TA_CDLCLOSINGMARUBOZU), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLCONCEALBABYSWALL, __pyx_k_TA_CDLCONCEALBABYSWALL, sizeof(__pyx_k_TA_CDLCONCEALBABYSWALL), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLCOUNTERATTACK, __pyx_k_TA_CDLCOUNTERATTACK, sizeof(__pyx_k_TA_CDLCOUNTERATTACK), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLDARKCLOUDCOVER, __pyx_k_TA_CDLDARKCLOUDCOVER, sizeof(__pyx_k_TA_CDLDARKCLOUDCOVER), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLDOJI, __pyx_k_TA_CDLDOJI, sizeof(__pyx_k_TA_CDLDOJI), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLDOJISTAR, __pyx_k_TA_CDLDOJISTAR, sizeof(__pyx_k_TA_CDLDOJISTAR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLDRAGONFLYDOJI, __pyx_k_TA_CDLDRAGONFLYDOJI, sizeof(__pyx_k_TA_CDLDRAGONFLYDOJI), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLENGULFING, __pyx_k_TA_CDLENGULFING, sizeof(__pyx_k_TA_CDLENGULFING), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLEVENINGDOJISTAR, __pyx_k_TA_CDLEVENINGDOJISTAR, sizeof(__pyx_k_TA_CDLEVENINGDOJISTAR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLEVENINGSTAR, __pyx_k_TA_CDLEVENINGSTAR, sizeof(__pyx_k_TA_CDLEVENINGSTAR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLGAPSIDESIDEWHITE, __pyx_k_TA_CDLGAPSIDESIDEWHITE, sizeof(__pyx_k_TA_CDLGAPSIDESIDEWHITE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLGRAVESTONEDOJI, __pyx_k_TA_CDLGRAVESTONEDOJI, sizeof(__pyx_k_TA_CDLGRAVESTONEDOJI), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLHAMMER, __pyx_k_TA_CDLHAMMER, sizeof(__pyx_k_TA_CDLHAMMER), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLHANGINGMAN, __pyx_k_TA_CDLHANGINGMAN, sizeof(__pyx_k_TA_CDLHANGINGMAN), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLHARAMI, __pyx_k_TA_CDLHARAMI, sizeof(__pyx_k_TA_CDLHARAMI), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLHARAMICROSS, __pyx_k_TA_CDLHARAMICROSS, sizeof(__pyx_k_TA_CDLHARAMICROSS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLHIGHWAVE, __pyx_k_TA_CDLHIGHWAVE, sizeof(__pyx_k_TA_CDLHIGHWAVE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLHIKKAKE, __pyx_k_TA_CDLHIKKAKE, sizeof(__pyx_k_TA_CDLHIKKAKE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLHIKKAKEMOD, __pyx_k_TA_CDLHIKKAKEMOD, sizeof(__pyx_k_TA_CDLHIKKAKEMOD), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLHOMINGPIGEON, __pyx_k_TA_CDLHOMINGPIGEON, sizeof(__pyx_k_TA_CDLHOMINGPIGEON), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLIDENTICAL3CROWS, __pyx_k_TA_CDLIDENTICAL3CROWS, sizeof(__pyx_k_TA_CDLIDENTICAL3CROWS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLINNECK, __pyx_k_TA_CDLINNECK, sizeof(__pyx_k_TA_CDLINNECK), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLINVERTEDHAMMER, __pyx_k_TA_CDLINVERTEDHAMMER, sizeof(__pyx_k_TA_CDLINVERTEDHAMMER), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLKICKING, __pyx_k_TA_CDLKICKING, sizeof(__pyx_k_TA_CDLKICKING), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLKICKINGBYLENGTH, __pyx_k_TA_CDLKICKINGBYLENGTH, sizeof(__pyx_k_TA_CDLKICKINGBYLENGTH), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLLADDERBOTTOM, __pyx_k_TA_CDLLADDERBOTTOM, sizeof(__pyx_k_TA_CDLLADDERBOTTOM), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLLONGLEGGEDDOJI, __pyx_k_TA_CDLLONGLEGGEDDOJI, sizeof(__pyx_k_TA_CDLLONGLEGGEDDOJI), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLLONGLINE, __pyx_k_TA_CDLLONGLINE, sizeof(__pyx_k_TA_CDLLONGLINE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLMARUBOZU, __pyx_k_TA_CDLMARUBOZU, sizeof(__pyx_k_TA_CDLMARUBOZU), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLMATCHINGLOW, __pyx_k_TA_CDLMATCHINGLOW, sizeof(__pyx_k_TA_CDLMATCHINGLOW), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLMATHOLD, __pyx_k_TA_CDLMATHOLD, sizeof(__pyx_k_TA_CDLMATHOLD), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLMORNINGDOJISTAR, __pyx_k_TA_CDLMORNINGDOJISTAR, sizeof(__pyx_k_TA_CDLMORNINGDOJISTAR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLMORNINGSTAR, __pyx_k_TA_CDLMORNINGSTAR, sizeof(__pyx_k_TA_CDLMORNINGSTAR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLONNECK, __pyx_k_TA_CDLONNECK, sizeof(__pyx_k_TA_CDLONNECK), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLPIERCING, __pyx_k_TA_CDLPIERCING, sizeof(__pyx_k_TA_CDLPIERCING), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLRICKSHAWMAN, __pyx_k_TA_CDLRICKSHAWMAN, sizeof(__pyx_k_TA_CDLRICKSHAWMAN), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLRISEFALL3METHODS, __pyx_k_TA_CDLRISEFALL3METHODS, sizeof(__pyx_k_TA_CDLRISEFALL3METHODS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLSEPARATINGLINES, __pyx_k_TA_CDLSEPARATINGLINES, sizeof(__pyx_k_TA_CDLSEPARATINGLINES), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLSHOOTINGSTAR, __pyx_k_TA_CDLSHOOTINGSTAR, sizeof(__pyx_k_TA_CDLSHOOTINGSTAR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLSHORTLINE, __pyx_k_TA_CDLSHORTLINE, sizeof(__pyx_k_TA_CDLSHORTLINE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLSPINNINGTOP, __pyx_k_TA_CDLSPINNINGTOP, sizeof(__pyx_k_TA_CDLSPINNINGTOP), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLSTALLEDPATTERN, __pyx_k_TA_CDLSTALLEDPATTERN, sizeof(__pyx_k_TA_CDLSTALLEDPATTERN), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLSTICKSANDWICH, __pyx_k_TA_CDLSTICKSANDWICH, sizeof(__pyx_k_TA_CDLSTICKSANDWICH), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLTAKURI, __pyx_k_TA_CDLTAKURI, sizeof(__pyx_k_TA_CDLTAKURI), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLTASUKIGAP, __pyx_k_TA_CDLTASUKIGAP, sizeof(__pyx_k_TA_CDLTASUKIGAP), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLTHRUSTING, __pyx_k_TA_CDLTHRUSTING, sizeof(__pyx_k_TA_CDLTHRUSTING), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLTRISTAR, __pyx_k_TA_CDLTRISTAR, sizeof(__pyx_k_TA_CDLTRISTAR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLUNIQUE3RIVER, __pyx_k_TA_CDLUNIQUE3RIVER, sizeof(__pyx_k_TA_CDLUNIQUE3RIVER), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLUPSIDEGAP2CROWS, __pyx_k_TA_CDLUPSIDEGAP2CROWS, sizeof(__pyx_k_TA_CDLUPSIDEGAP2CROWS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CDLXSIDEGAP3METHODS, __pyx_k_TA_CDLXSIDEGAP3METHODS, sizeof(__pyx_k_TA_CDLXSIDEGAP3METHODS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CEIL, __pyx_k_TA_CEIL, sizeof(__pyx_k_TA_CEIL), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CMO, __pyx_k_TA_CMO, sizeof(__pyx_k_TA_CMO), 0, 0, 1, 1},
  {&__pyx_n_s_TA_CORREL, __pyx_k_TA_CORREL, sizeof(__pyx_k_TA_CORREL), 0, 0, 1, 1},
  {&__pyx_n_s_TA_COS, __pyx_k_TA_COS, sizeof(__pyx_k_TA_COS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_COSH, __pyx_k_TA_COSH, sizeof(__pyx_k_TA_COSH), 0, 0, 1, 1},
  {&__pyx_n_s_TA_DEMA, __pyx_k_TA_DEMA, sizeof(__pyx_k_TA_DEMA), 0, 0, 1, 1},
  {&__pyx_n_s_TA_DIV, __pyx_k_TA_DIV, sizeof(__pyx_k_TA_DIV), 0, 0, 1, 1},
  {&__pyx_n_s_TA_DX, __pyx_k_TA_DX, sizeof(__pyx_k_TA_DX), 0, 0, 1, 1},
  {&__pyx_n_s_TA_EMA, __pyx_k_TA_EMA, sizeof(__pyx_k_TA_EMA), 0, 0, 1, 1},
  {&__pyx_n_s_TA_EXP, __pyx_k_TA_EXP, sizeof(__pyx_k_TA_EXP), 0, 0, 1, 1},
  {&__pyx_n_s_TA_FLOOR, __pyx_k_TA_FLOOR, sizeof(__pyx_k_TA_FLOOR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_FUNCTION_NAMES, __pyx_k_TA_FUNCTION_NAMES, sizeof(__pyx_k_TA_FUNCTION_NAMES), 0, 0, 1, 1},
  {&__pyx_n_s_TA_FUNC_FLAGS, __pyx_k_TA_FUNC_FLAGS, sizeof(__pyx_k_TA_FUNC_FLAGS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_FuncTableAlloc, __pyx_k_TA_FuncTableAlloc, sizeof(__pyx_k_TA_FuncTableAlloc), 0, 0, 1, 1},
  {&__pyx_n_s_TA_FuncTableFree, __pyx_k_TA_FuncTableFree, sizeof(__pyx_k_TA_FuncTableFree), 0, 0, 1, 1},
  {&__pyx_n_s_TA_GetFuncHandle, __pyx_k_TA_GetFuncHandle, sizeof(__pyx_k_TA_GetFuncHandle), 0, 0, 1, 1},
  {&__pyx_n_s_TA_GetFuncInfo, __pyx_k_TA_GetFuncInfo, sizeof(__pyx_k_TA_GetFuncInfo), 0, 0, 1, 1},
  {&__pyx_n_s_TA_GetInputParameterInfo, __pyx_k_TA_GetInputParameterInfo, sizeof(__pyx_k_TA_GetInputParameterInfo), 0, 0, 1, 1},
  {&__pyx_n_s_TA_GetLookback, __pyx_k_TA_GetLookback, sizeof(__pyx_k_TA_GetLookback), 0, 0, 1, 1},
  {&__pyx_n_s_TA_GetOptInputParameterInfo, __pyx_k_TA_GetOptInputParameterInfo, sizeof(__pyx_k_TA_GetOptInputParameterInfo), 0, 0, 1, 1},
  {&__pyx_n_s_TA_GetOutputParameterInfo, __pyx_k_TA_GetOutputParameterInfo, sizeof(__pyx_k_TA_GetOutputParameterInfo), 0, 0, 1, 1},
  {&__pyx_n_s_TA_GroupTableAlloc, __pyx_k_TA_GroupTableAlloc, sizeof(__pyx_k_TA_GroupTableAlloc), 0, 0, 1, 1},
  {&__pyx_n_s_TA_GroupTableFree, __pyx_k_TA_GroupTableFree, sizeof(__pyx_k_TA_GroupTableFree), 0, 0, 1, 1},
  {&__pyx_n_s_TA_HT_DCPERIOD, __pyx_k_TA_HT_DCPERIOD, sizeof(__pyx_k_TA_HT_DCPERIOD), 0, 0, 1, 1},
  {&__pyx_n_s_TA_HT_DCPHASE, __pyx_k_TA_HT_DCPHASE, sizeof(__pyx_k_TA_HT_DCPHASE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_HT_PHASOR, __pyx_k_TA_HT_PHASOR, sizeof(__pyx_k_TA_HT_PHASOR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_HT_SINE, __pyx_k_TA_HT_SINE, sizeof(__pyx_k_TA_HT_SINE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_HT_TRENDLINE, __pyx_k_TA_HT_TRENDLINE, sizeof(__pyx_k_TA_HT_TRENDLINE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_HT_TRENDMODE, __pyx_k_TA_HT_TRENDMODE, sizeof(__pyx_k_TA_HT_TRENDMODE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_INPUT_FLAGS, __pyx_k_TA_INPUT_FLAGS, sizeof(__pyx_k_TA_INPUT_FLAGS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_Initialize, __pyx_k_TA_Initialize, sizeof(__pyx_k_TA_Initialize), 0, 0, 1, 1},
  {&__pyx_n_s_TA_KAMA, __pyx_k_TA_KAMA, sizeof(__pyx_k_TA_KAMA), 0, 0, 1, 1},
  {&__pyx_n_s_TA_LINEARREG, __pyx_k_TA_LINEARREG, sizeof(__pyx_k_TA_LINEARREG), 0, 0, 1, 1},
  {&__pyx_n_s_TA_LINEARREG_ANGLE, __pyx_k_TA_LINEARREG_ANGLE, sizeof(__pyx_k_TA_LINEARREG_ANGLE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_LINEARREG_INTERCEPT, __pyx_k_TA_LINEARREG_INTERCEPT, sizeof(__pyx_k_TA_LINEARREG_INTERCEPT), 0, 0, 1, 1},
  {&__pyx_n_s_TA_LINEARREG_SLOPE, __pyx_k_TA_LINEARREG_SLOPE, sizeof(__pyx_k_TA_LINEARREG_SLOPE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_LN, __pyx_k_TA_LN, sizeof(__pyx_k_TA_LN), 0, 0, 1, 1},
  {&__pyx_n_s_TA_LOG10, __pyx_k_TA_LOG10, sizeof(__pyx_k_TA_LOG10), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MA, __pyx_k_TA_MA, sizeof(__pyx_k_TA_MA), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MACD, __pyx_k_TA_MACD, sizeof(__pyx_k_TA_MACD), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MACDEXT, __pyx_k_TA_MACDEXT, sizeof(__pyx_k_TA_MACDEXT), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MACDFIX, __pyx_k_TA_MACDFIX, sizeof(__pyx_k_TA_MACDFIX), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MAMA, __pyx_k_TA_MAMA, sizeof(__pyx_k_TA_MAMA), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MAVP, __pyx_k_TA_MAVP, sizeof(__pyx_k_TA_MAVP), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MAX, __pyx_k_TA_MAX, sizeof(__pyx_k_TA_MAX), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MAXINDEX, __pyx_k_TA_MAXINDEX, sizeof(__pyx_k_TA_MAXINDEX), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MEDPRICE, __pyx_k_TA_MEDPRICE, sizeof(__pyx_k_TA_MEDPRICE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MFI, __pyx_k_TA_MFI, sizeof(__pyx_k_TA_MFI), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MIDPOINT, __pyx_k_TA_MIDPOINT, sizeof(__pyx_k_TA_MIDPOINT), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MIDPRICE, __pyx_k_TA_MIDPRICE, sizeof(__pyx_k_TA_MIDPRICE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MIN, __pyx_k_TA_MIN, sizeof(__pyx_k_TA_MIN), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MININDEX, __pyx_k_TA_MININDEX, sizeof(__pyx_k_TA_MININDEX), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MINMAX, __pyx_k_TA_MINMAX, sizeof(__pyx_k_TA_MINMAX), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MINMAXINDEX, __pyx_k_TA_MINMAXINDEX, sizeof(__pyx_k_TA_MINMAXINDEX), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MINUS_DI, __pyx_k_TA_MINUS_DI, sizeof(__pyx_k_TA_MINUS_DI), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MINUS_DM, __pyx_k_TA_MINUS_DM, sizeof(__pyx_k_TA_MINUS_DM), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MOM, __pyx_k_TA_MOM, sizeof(__pyx_k_TA_MOM), 0, 0, 1, 1},
  {&__pyx_n_s_TA_MULT, __pyx_k_TA_MULT, sizeof(__pyx_k_TA_MULT), 0, 0, 1, 1},
  {&__pyx_n_s_TA_NATR, __pyx_k_TA_NATR, sizeof(__pyx_k_TA_NATR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_OBV, __pyx_k_TA_OBV, sizeof(__pyx_k_TA_OBV), 0, 0, 1, 1},
  {&__pyx_n_s_TA_OUTPUT_FLAGS, __pyx_k_TA_OUTPUT_FLAGS, sizeof(__pyx_k_TA_OUTPUT_FLAGS), 0, 0, 1, 1},
  {&__pyx_n_s_TA_PLUS_DI, __pyx_k_TA_PLUS_DI, sizeof(__pyx_k_TA_PLUS_DI), 0, 0, 1, 1},
  {&__pyx_n_s_TA_PLUS_DM, __pyx_k_TA_PLUS_DM, sizeof(__pyx_k_TA_PLUS_DM), 0, 0, 1, 1},
  {&__pyx_n_s_TA_PPO, __pyx_k_TA_PPO, sizeof(__pyx_k_TA_PPO), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ParamHolderAlloc, __pyx_k_TA_ParamHolderAlloc, sizeof(__pyx_k_TA_ParamHolderAlloc), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ParamHolderFree, __pyx_k_TA_ParamHolderFree, sizeof(__pyx_k_TA_ParamHolderFree), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ROC, __pyx_k_TA_ROC, sizeof(__pyx_k_TA_ROC), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ROCP, __pyx_k_TA_ROCP, sizeof(__pyx_k_TA_ROCP), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ROCR, __pyx_k_TA_ROCR, sizeof(__pyx_k_TA_ROCR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ROCR100, __pyx_k_TA_ROCR100, sizeof(__pyx_k_TA_ROCR100), 0, 0, 1, 1},
  {&__pyx_n_s_TA_RSI, __pyx_k_TA_RSI, sizeof(__pyx_k_TA_RSI), 0, 0, 1, 1},
  {&__pyx_n_s_TA_RestoreCandleDefaultSettings, __pyx_k_TA_RestoreCandleDefaultSettings, sizeof(__pyx_k_TA_RestoreCandleDefaultSettings), 0, 0, 1, 1},
  {&__pyx_n_s_TA_SAR, __pyx_k_TA_SAR, sizeof(__pyx_k_TA_SAR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_SAREXT, __pyx_k_TA_SAREXT, sizeof(__pyx_k_TA_SAREXT), 0, 0, 1, 1},
  {&__pyx_n_s_TA_SIN, __pyx_k_TA_SIN, sizeof(__pyx_k_TA_SIN), 0, 0, 1, 1},
  {&__pyx_n_s_TA_SINH, __pyx_k_TA_SINH, sizeof(__pyx_k_TA_SINH), 0, 0, 1, 1},
  {&__pyx_n_s_TA_SMA, __pyx_k_TA_SMA, sizeof(__pyx_k_TA_SMA), 0, 0, 1, 1},
  {&__pyx_n_s_TA_SQRT, __pyx_k_TA_SQRT, sizeof(__pyx_k_TA_SQRT), 0, 0, 1, 1},
  {&__pyx_n_s_TA_STDDEV, __pyx_k_TA_STDDEV, sizeof(__pyx_k_TA_STDDEV), 0, 0, 1, 1},
  {&__pyx_n_s_TA_STOCH, __pyx_k_TA_STOCH, sizeof(__pyx_k_TA_STOCH), 0, 0, 1, 1},
  {&__pyx_n_s_TA_STOCHF, __pyx_k_TA_STOCHF, sizeof(__pyx_k_TA_STOCHF), 0, 0, 1, 1},
  {&__pyx_n_s_TA_STOCHRSI, __pyx_k_TA_STOCHRSI, sizeof(__pyx_k_TA_STOCHRSI), 0, 0, 1, 1},
  {&__pyx_n_s_TA_SUB, __pyx_k_TA_SUB, sizeof(__pyx_k_TA_SUB), 0, 0, 1, 1},
  {&__pyx_n_s_TA_SUM, __pyx_k_TA_SUM, sizeof(__pyx_k_TA_SUM), 0, 0, 1, 1},
  {&__pyx_n_s_TA_SetCandleSettings, __pyx_k_TA_SetCandleSettings, sizeof(__pyx_k_TA_SetCandleSettings), 0, 0, 1, 1},
  {&__pyx_n_s_TA_SetCompatibility, __pyx_k_TA_SetCompatibility, sizeof(__pyx_k_TA_SetCompatibility), 0, 0, 1, 1},
  {&__pyx_n_s_TA_SetOptInputParamInteger, __pyx_k_TA_SetOptInputParamInteger, sizeof(__pyx_k_TA_SetOptInputParamInteger), 0, 0, 1, 1},
  {&__pyx_n_s_TA_SetOptInputParamReal, __pyx_k_TA_SetOptInputParamReal, sizeof(__pyx_k_TA_SetOptInputParamReal), 0, 0, 1, 1},
  {&__pyx_n_s_TA_SetUnstablePeriod, __pyx_k_TA_SetUnstablePeriod, sizeof(__pyx_k_TA_SetUnstablePeriod), 0, 0, 1, 1},
  {&__pyx_n_s_TA_Shutdown, __pyx_k_TA_Shutdown, sizeof(__pyx_k_TA_Shutdown), 0, 0, 1, 1},
  {&__pyx_n_s_TA_T3, __pyx_k_TA_T3, sizeof(__pyx_k_TA_T3), 0, 0, 1, 1},
  {&__pyx_n_s_TA_TAN, __pyx_k_TA_TAN, sizeof(__pyx_k_TA_TAN), 0, 0, 1, 1},
  {&__pyx_n_s_TA_TANH, __pyx_k_TA_TANH, sizeof(__pyx_k_TA_TANH), 0, 0, 1, 1},
  {&__pyx_n_s_TA_TEMA, __pyx_k_TA_TEMA, sizeof(__pyx_k_TA_TEMA), 0, 0, 1, 1},
  {&__pyx_n_s_TA_TRANGE, __pyx_k_TA_TRANGE, sizeof(__pyx_k_TA_TRANGE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_TRIMA, __pyx_k_TA_TRIMA, sizeof(__pyx_k_TA_TRIMA), 0, 0, 1, 1},
  {&__pyx_n_s_TA_TRIX, __pyx_k_TA_TRIX, sizeof(__pyx_k_TA_TRIX), 0, 0, 1, 1},
  {&__pyx_n_s_TA_TSF, __pyx_k_TA_TSF, sizeof(__pyx_k_TA_TSF), 0, 0, 1, 1},
  {&__pyx_n_s_TA_TYPPRICE, __pyx_k_TA_TYPPRICE, sizeof(__pyx_k_TA_TYPPRICE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_ULTOSC, __pyx_k_TA_ULTOSC, sizeof(__pyx_k_TA_ULTOSC), 0, 0, 1, 1},
  {&__pyx_n_s_TA_VAR, __pyx_k_TA_VAR, sizeof(__pyx_k_TA_VAR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_WCLPRICE, __pyx_k_TA_WCLPRICE, sizeof(__pyx_k_TA_WCLPRICE), 0, 0, 1, 1},
  {&__pyx_n_s_TA_WILLR, __pyx_k_TA_WILLR, sizeof(__pyx_k_TA_WILLR), 0, 0, 1, 1},
  {&__pyx_n_s_TA_WMA, __pyx_k_TA_WMA, sizeof(__pyx_k_TA_WMA), 0, 0, 1, 1},
  {&__pyx_n_s_TEMA, __pyx_k_TEMA, sizeof(__pyx_k_TEMA), 0, 0, 1, 1},
  {&__pyx_n_s_TRANGE, __pyx_k_TRANGE, sizeof(__pyx_k_TRANGE), 0, 0, 1, 1},
  {&__pyx_n_s_TRIMA, __pyx_k_TRIMA, sizeof(__pyx_k_TRIMA), 0, 0, 1, 1},
  {&__pyx_n_s_TRIX, __pyx_k_TRIX, sizeof(__pyx_k_TRIX), 0, 0, 1, 1},
  {&__pyx_n_s_TSF, __pyx_k_TSF, sizeof(__pyx_k_TSF), 0, 0, 1, 1},
  {&__pyx_n_s_TYPPRICE, __pyx_k_TYPPRICE, sizeof(__pyx_k_TYPPRICE), 0, 0, 1, 1},
  {&__pyx_kp_s_This_is_a_pythonic_wrapper_arou, __pyx_k_This_is_a_pythonic_wrapper_arou, sizeof(__pyx_k_This_is_a_pythonic_wrapper_arou), 0, 0, 1, 0},
  {&__pyx_kp_s_Too_many_price_arguments_expecte, __pyx_k_Too_many_price_arguments_expecte, sizeof(__pyx_k_Too_many_price_arguments_expecte), 0, 0, 1, 0},
  {&__pyx_kp_s_Triangular_Moving_Average, __pyx_k_Triangular_Moving_Average, sizeof(__pyx_k_Triangular_Moving_Average), 0, 0, 1, 0},
  {&__pyx_kp_s_Triple_Exponential_Moving_Averag, __pyx_k_Triple_Exponential_Moving_Averag, sizeof(__pyx_k_Triple_Exponential_Moving_Averag), 0, 0, 1, 0},
  {&__pyx_kp_s_Triple_Generalized_Double_Expone, __pyx_k_Triple_Generalized_Double_Expone, sizeof(__pyx_k_Triple_Generalized_Double_Expone), 0, 0, 1, 0},
  {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
  {&__pyx_n_s_ULTOSC, __pyx_k_ULTOSC, sizeof(__pyx_k_ULTOSC), 0, 0, 1, 1},
  {&__pyx_kp_s_Unknown_Error, __pyx_k_Unknown_Error, sizeof(__pyx_k_Unknown_Error), 0, 0, 1, 0},
  {&__pyx_kp_s_Unknown_Error_TA_UNKNOWN_ERR, __pyx_k_Unknown_Error_TA_UNKNOWN_ERR, sizeof(__pyx_k_Unknown_Error_TA_UNKNOWN_ERR), 0, 0, 1, 0},
  {&__pyx_n_s_VAR, __pyx_k_VAR, sizeof(__pyx_k_VAR), 0, 0, 1, 1},
  {&__pyx_kp_s_Values_represent_a_lower_limit, __pyx_k_Values_represent_a_lower_limit, sizeof(__pyx_k_Values_represent_a_lower_limit), 0, 0, 1, 0},
  {&__pyx_kp_s_Values_represent_an_upper_limit, __pyx_k_Values_represent_an_upper_limit, sizeof(__pyx_k_Values_represent_an_upper_limit), 0, 0, 1, 0},
  {&__pyx_n_s_WCLPRICE, __pyx_k_WCLPRICE, sizeof(__pyx_k_WCLPRICE), 0, 0, 1, 1},
  {&__pyx_n_s_WILLR, __pyx_k_WILLR, sizeof(__pyx_k_WILLR), 0, 0, 1, 1},
  {&__pyx_n_s_WMA, __pyx_k_WMA, sizeof(__pyx_k_WMA), 0, 0, 1, 1},
  {&__pyx_kp_s_Weighted_Moving_Average, __pyx_k_Weighted_Moving_Average, sizeof(__pyx_k_Weighted_Moving_Average), 0, 0, 1, 0},
  {&__pyx_kp_s__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 0, 1, 0},
  {&__pyx_kp_s__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 0, 1, 0},
  {&__pyx_kp_s__5, __pyx_k__5, sizeof(__pyx_k__5), 0, 0, 1, 0},
  {&__pyx_kp_s__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 0, 1, 0},
  {&__pyx_kp_s__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 0, 1, 0},
  {&__pyx_kp_s__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 0, 1, 0},
  {&__pyx_n_s_acceleration, __pyx_k_acceleration, sizeof(__pyx_k_acceleration), 0, 0, 1, 1},
  {&__pyx_n_s_accelerationinitlong, __pyx_k_accelerationinitlong, sizeof(__pyx_k_accelerationinitlong), 0, 0, 1, 1},
  {&__pyx_n_s_accelerationinitshort, __pyx_k_accelerationinitshort, sizeof(__pyx_k_accelerationinitshort), 0, 0, 1, 1},
  {&__pyx_n_s_accelerationlong, __pyx_k_accelerationlong, sizeof(__pyx_k_accelerationlong), 0, 0, 1, 1},
  {&__pyx_n_s_accelerationmaxlong, __pyx_k_accelerationmaxlong, sizeof(__pyx_k_accelerationmaxlong), 0, 0, 1, 1},
  {&__pyx_n_s_accelerationmaxshort, __pyx_k_accelerationmaxshort, sizeof(__pyx_k_accelerationmaxshort), 0, 0, 1, 1},
  {&__pyx_n_s_accelerationshort, __pyx_k_accelerationshort, sizeof(__pyx_k_accelerationshort), 0, 0, 1, 1},
  {&__pyx_n_s_all, __pyx_k_all, sizeof(__pyx_k_all), 0, 0, 1, 1},
  {&__pyx_kp_s_any_ndarray, __pyx_k_any_ndarray, sizeof(__pyx_k_any_ndarray), 0, 0, 1, 0},
  {&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1},
  {&__pyx_n_s_arg, __pyx_k_arg, sizeof(__pyx_k_arg), 0, 0, 1, 1},
  {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
  {&__pyx_n_s_ascii, __pyx_k_ascii, sizeof(__pyx_k_ascii), 0, 0, 1, 1},
  {&__pyx_n_s_astype, __pyx_k_astype, sizeof(__pyx_k_astype), 0, 0, 1, 1},
  {&__pyx_n_s_avgperiod, __pyx_k_avgperiod, sizeof(__pyx_k_avgperiod), 0, 0, 1, 1},
  {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1},
  {&__pyx_n_s_begidx, __pyx_k_begidx, sizeof(__pyx_k_begidx), 0, 0, 1, 1},
  {&__pyx_n_s_bytes2str, __pyx_k_bytes2str, sizeof(__pyx_k_bytes2str), 0, 0, 1, 1},
  {&__pyx_n_s_call, __pyx_k_call, sizeof(__pyx_k_call), 0, 0, 1, 1},
  {&__pyx_n_s_call_function, __pyx_k_call_function, sizeof(__pyx_k_call_function), 0, 0, 1, 1},
  {&__pyx_n_s_check_opt_input_value, __pyx_k_check_opt_input_value, sizeof(__pyx_k_check_opt_input_value), 0, 0, 1, 1},
  {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
  {&__pyx_n_s_clone, __pyx_k_clone, sizeof(__pyx_k_clone), 0, 0, 1, 1},
  {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1},
  {&__pyx_n_s_close_data, __pyx_k_close_data, sizeof(__pyx_k_close_data), 0, 0, 1, 1},
  {&__pyx_n_s_collections, __pyx_k_collections, sizeof(__pyx_k_collections), 0, 0, 1, 1},
  {&__pyx_n_s_column_stack, __pyx_k_column_stack, sizeof(__pyx_k_column_stack), 0, 0, 1, 1},
  {&__pyx_n_s_columns, __pyx_k_columns, sizeof(__pyx_k_columns), 0, 0, 1, 1},
  {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1},
  {&__pyx_n_s_decode, __pyx_k_decode, sizeof(__pyx_k_decode), 0, 0, 1, 1},
  {&__pyx_n_s_default_value, __pyx_k_default_value, sizeof(__pyx_k_default_value), 0, 0, 1, 1},
  {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1},
  {&__pyx_n_s_display_name, __pyx_k_display_name, sizeof(__pyx_k_display_name), 0, 0, 1, 1},
  {&__pyx_kp_s_display_name_s_group_s, __pyx_k_display_name_s_group_s, sizeof(__pyx_k_display_name_s_group_s), 0, 0, 1, 0},
  {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1},
  {&__pyx_n_s_docs, __pyx_k_docs, sizeof(__pyx_k_docs), 0, 0, 1, 1},
  {&__pyx_n_s_documentation, __pyx_k_documentation, sizeof(__pyx_k_documentation), 0, 0, 1, 1},
  {&__pyx_n_s_empty, __pyx_k_empty, sizeof(__pyx_k_empty), 0, 0, 1, 1},
  {&__pyx_n_s_endidx, __pyx_k_endidx, sizeof(__pyx_k_endidx), 0, 0, 1, 1},
  {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1},
  {&__pyx_n_s_factor, __pyx_k_factor, sizeof(__pyx_k_factor), 0, 0, 1, 1},
  {&__pyx_n_s_fastd_matype, __pyx_k_fastd_matype, sizeof(__pyx_k_fastd_matype), 0, 0, 1, 1},
  {&__pyx_n_s_fastd_period, __pyx_k_fastd_period, sizeof(__pyx_k_fastd_period), 0, 0, 1, 1},
  {&__pyx_n_s_fastk_period, __pyx_k_fastk_period, sizeof(__pyx_k_fastk_period), 0, 0, 1, 1},
  {&__pyx_n_s_fastlimit, __pyx_k_fastlimit, sizeof(__pyx_k_fastlimit), 0, 0, 1, 1},
  {&__pyx_n_s_fastmatype, __pyx_k_fastmatype, sizeof(__pyx_k_fastmatype), 0, 0, 1, 1},
  {&__pyx_n_s_fastperiod, __pyx_k_fastperiod, sizeof(__pyx_k_fastperiod), 0, 0, 1, 1},
  {&__pyx_n_s_flag, __pyx_k_flag, sizeof(__pyx_k_flag), 0, 0, 1, 1},
  {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1},
  {&__pyx_n_s_flags_lookup_dict, __pyx_k_flags_lookup_dict, sizeof(__pyx_k_flags_lookup_dict), 0, 0, 1, 1},
  {&__pyx_n_s_func_args, __pyx_k_func_args, sizeof(__pyx_k_func_args), 0, 0, 1, 1},
  {&__pyx_n_s_func_info, __pyx_k_func_info, sizeof(__pyx_k_func_info), 0, 0, 1, 1},
  {&__pyx_n_s_func_line, __pyx_k_func_line, sizeof(__pyx_k_func_line), 0, 0, 1, 1},
  {&__pyx_n_s_func_object, __pyx_k_func_object, sizeof(__pyx_k_func_object), 0, 0, 1, 1},
  {&__pyx_n_s_function_flags, __pyx_k_function_flags, sizeof(__pyx_k_function_flags), 0, 0, 1, 1},
  {&__pyx_n_s_function_name, __pyx_k_function_name, sizeof(__pyx_k_function_name), 0, 0, 1, 1},
  {&__pyx_n_s_functions, __pyx_k_functions, sizeof(__pyx_k_functions), 0, 0, 1, 1},
  {&__pyx_n_s_get_defaults_and_docs, __pyx_k_get_defaults_and_docs, sizeof(__pyx_k_get_defaults_and_docs), 0, 0, 1, 1},
  {&__pyx_n_s_get_flags, __pyx_k_get_flags, sizeof(__pyx_k_get_flags), 0, 0, 1, 1},
  {&__pyx_n_s_get_input_arrays, __pyx_k_get_input_arrays, sizeof(__pyx_k_get_input_arrays), 0, 0, 1, 1},
  {&__pyx_n_s_get_input_names, __pyx_k_get_input_names, sizeof(__pyx_k_get_input_names), 0, 0, 1, 1},
  {&__pyx_n_s_get_opt_input_value, __pyx_k_get_opt_input_value, sizeof(__pyx_k_get_opt_input_value), 0, 0, 1, 1},
  {&__pyx_n_s_get_parameters, __pyx_k_get_parameters, sizeof(__pyx_k_get_parameters), 0, 0, 1, 1},
  {&__pyx_n_s_getitem, __pyx_k_getitem, sizeof(__pyx_k_getitem), 0, 0, 1, 1},
  {&__pyx_n_s_group, __pyx_k_group, sizeof(__pyx_k_group), 0, 0, 1, 1},
  {&__pyx_n_s_groups, __pyx_k_groups, sizeof(__pyx_k_groups), 0, 0, 1, 1},
  {&__pyx_n_s_help, __pyx_k_help, sizeof(__pyx_k_help), 0, 0, 1, 1},
  {&__pyx_n_s_high, __pyx_k_high, sizeof(__pyx_k_high), 0, 0, 1, 1},
  {&__pyx_n_s_high_data, __pyx_k_high_data, sizeof(__pyx_k_high_data), 0, 0, 1, 1},
  {&__pyx_n_s_holder, __pyx_k_holder, sizeof(__pyx_k_holder), 0, 0, 1, 1},
  {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1},
  {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1},
  {&__pyx_n_s_idx, __pyx_k_idx, sizeof(__pyx_k_idx), 0, 0, 1, 1},
  {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
  {&__pyx_n_s_in, __pyx_k_in, sizeof(__pyx_k_in), 0, 0, 1, 1},
  {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1},
  {&__pyx_n_s_info, __pyx_k_info, sizeof(__pyx_k_info), 0, 0, 1, 1},
  {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1},
  {&__pyx_n_s_initialize_function_info, __pyx_k_initialize_function_info, sizeof(__pyx_k_initialize_function_info), 0, 0, 1, 1},
  {&__pyx_kp_s_input_array_has_wrong_dimensions, __pyx_k_input_array_has_wrong_dimensions, sizeof(__pyx_k_input_array_has_wrong_dimensions), 0, 0, 1, 0},
  {&__pyx_kp_s_input_array_lengths_are_differen, __pyx_k_input_array_lengths_are_differen, sizeof(__pyx_k_input_array_lengths_are_differen), 0, 0, 1, 0},
  {&__pyx_kp_s_input_array_type_is_not_double, __pyx_k_input_array_type_is_not_double, sizeof(__pyx_k_input_array_type_is_not_double), 0, 0, 1, 0},
  {&__pyx_n_s_input_arrays, __pyx_k_input_arrays, sizeof(__pyx_k_input_arrays), 0, 0, 1, 1},
  {&__pyx_kp_s_input_arrays_2, __pyx_k_input_arrays_2, sizeof(__pyx_k_input_arrays_2), 0, 0, 1, 0},
  {&__pyx_kp_s_input_arrays_parameter_missing_r, __pyx_k_input_arrays_parameter_missing_r, sizeof(__pyx_k_input_arrays_parameter_missing_r), 0, 0, 1, 0},
  {&__pyx_n_s_input_name, __pyx_k_input_name, sizeof(__pyx_k_input_name), 0, 0, 1, 1},
  {&__pyx_n_s_input_names, __pyx_k_input_names, sizeof(__pyx_k_input_names), 0, 0, 1, 1},
  {&__pyx_n_s_input_price_series_names, __pyx_k_input_price_series_names, sizeof(__pyx_k_input_price_series_names), 0, 0, 1, 1},
  {&__pyx_n_s_input_price_series_names_2, __pyx_k_input_price_series_names_2, sizeof(__pyx_k_input_price_series_names_2), 0, 0, 1, 1},
  {&__pyx_kp_s_inputs_are_all_NaN, __pyx_k_inputs_are_all_NaN, sizeof(__pyx_k_inputs_are_all_NaN), 0, 0, 1, 0},
  {&__pyx_n_s_integer, __pyx_k_integer, sizeof(__pyx_k_integer), 0, 0, 1, 1},
  {&__pyx_kp_s_integer_values_are_100_0_or_100, __pyx_k_integer_values_are_100_0_or_100, sizeof(__pyx_k_integer_values_are_100_0_or_100), 0, 0, 1, 0},
  {&__pyx_n_s_is_empty, __pyx_k_is_empty, sizeof(__pyx_k_is_empty), 0, 0, 1, 1},
  {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1},
  {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1},
  {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1},
  {&__pyx_n_s_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 0, 0, 1, 1},
  {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1},
  {&__pyx_n_s_length, __pyx_k_length, sizeof(__pyx_k_length), 0, 0, 1, 1},
  {&__pyx_n_s_log, __pyx_k_log, sizeof(__pyx_k_log), 0, 0, 1, 1},
  {&__pyx_n_s_lookback, __pyx_k_lookback, sizeof(__pyx_k_lookback), 0, 0, 1, 1},
  {&__pyx_n_s_lookup, __pyx_k_lookup, sizeof(__pyx_k_lookup), 0, 0, 1, 1},
  {&__pyx_n_s_low, __pyx_k_low, sizeof(__pyx_k_low), 0, 0, 1, 1},
  {&__pyx_n_s_low_data, __pyx_k_low_data, sizeof(__pyx_k_low_data), 0, 0, 1, 1},
  {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1},
  {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
  {&__pyx_n_s_math, __pyx_k_math, sizeof(__pyx_k_math), 0, 0, 1, 1},
  {&__pyx_n_s_matype, __pyx_k_matype, sizeof(__pyx_k_matype), 0, 0, 1, 1},
  {&__pyx_n_s_max, __pyx_k_max, sizeof(__pyx_k_max), 0, 0, 1, 1},
  {&__pyx_n_s_max_int, __pyx_k_max_int, sizeof(__pyx_k_max_int), 0, 0, 1, 1},
  {&__pyx_n_s_maximum, __pyx_k_maximum, sizeof(__pyx_k_maximum), 0, 0, 1, 1},
  {&__pyx_n_s_maxperiod, __pyx_k_maxperiod, sizeof(__pyx_k_maxperiod), 0, 0, 1, 1},
  {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1},
  {&__pyx_n_s_min, __pyx_k_min, sizeof(__pyx_k_min), 0, 0, 1, 1},
  {&__pyx_n_s_min_int, __pyx_k_min_int, sizeof(__pyx_k_min_int), 0, 0, 1, 1},
  {&__pyx_n_s_minperiod, __pyx_k_minperiod, sizeof(__pyx_k_minperiod), 0, 0, 1, 1},
  {&__pyx_n_s_missing, __pyx_k_missing, sizeof(__pyx_k_missing), 0, 0, 1, 1},
  {&__pyx_n_s_missing_keys, __pyx_k_missing_keys, sizeof(__pyx_k_missing_keys), 0, 0, 1, 1},
  {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1},
  {&__pyx_n_s_msg, __pyx_k_msg, sizeof(__pyx_k_msg), 0, 0, 1, 1},
  {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1},
  {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
  {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
  {&__pyx_n_s_nan, __pyx_k_nan, sizeof(__pyx_k_nan), 0, 0, 1, 1},
  {&__pyx_n_s_nbdev, __pyx_k_nbdev, sizeof(__pyx_k_nbdev), 0, 0, 1, 1},
  {&__pyx_n_s_nbdevdn, __pyx_k_nbdevdn, sizeof(__pyx_k_nbdevdn), 0, 0, 1, 1},
  {&__pyx_n_s_nbdevup, __pyx_k_nbdevup, sizeof(__pyx_k_nbdevup), 0, 0, 1, 1},
  {&__pyx_n_s_no_existing_input_arrays, __pyx_k_no_existing_input_arrays, sizeof(__pyx_k_no_existing_input_arrays), 0, 0, 1, 1},
  {&__pyx_n_s_num_inputs, __pyx_k_num_inputs, sizeof(__pyx_k_num_inputs), 0, 0, 1, 1},
  {&__pyx_n_s_num_opt_inputs, __pyx_k_num_opt_inputs, sizeof(__pyx_k_num_opt_inputs), 0, 0, 1, 1},
  {&__pyx_n_s_num_outputs, __pyx_k_num_outputs, sizeof(__pyx_k_num_outputs), 0, 0, 1, 1},
  {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1},
  {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0},
  {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0},
  {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1},
  {&__pyx_n_s_offsetonreverse, __pyx_k_offsetonreverse, sizeof(__pyx_k_offsetonreverse), 0, 0, 1, 1},
  {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1},
  {&__pyx_n_s_openInterest, __pyx_k_openInterest, sizeof(__pyx_k_openInterest), 0, 0, 1, 1},
  {&__pyx_n_s_open_data, __pyx_k_open_data, sizeof(__pyx_k_open_data), 0, 0, 1, 1},
  {&__pyx_n_s_optIn, __pyx_k_optIn, sizeof(__pyx_k_optIn), 0, 0, 1, 1},
  {&__pyx_n_s_opt_input, __pyx_k_opt_input, sizeof(__pyx_k_opt_input), 0, 0, 1, 1},
  {&__pyx_n_s_opt_input_values, __pyx_k_opt_input_values, sizeof(__pyx_k_opt_input_values), 0, 0, 1, 1},
  {&__pyx_n_s_ordereddict, __pyx_k_ordereddict, sizeof(__pyx_k_ordereddict), 0, 0, 1, 1},
  {&__pyx_n_s_out, __pyx_k_out, sizeof(__pyx_k_out), 0, 0, 1, 1},
  {&__pyx_n_s_outaroondown, __pyx_k_outaroondown, sizeof(__pyx_k_outaroondown), 0, 0, 1, 1},
  {&__pyx_n_s_outaroonup, __pyx_k_outaroonup, sizeof(__pyx_k_outaroonup), 0, 0, 1, 1},
  {&__pyx_n_s_outbegidx, __pyx_k_outbegidx, sizeof(__pyx_k_outbegidx), 0, 0, 1, 1},
  {&__pyx_n_s_outfama, __pyx_k_outfama, sizeof(__pyx_k_outfama), 0, 0, 1, 1},
  {&__pyx_n_s_outfastd, __pyx_k_outfastd, sizeof(__pyx_k_outfastd), 0, 0, 1, 1},
  {&__pyx_n_s_outfastk, __pyx_k_outfastk, sizeof(__pyx_k_outfastk), 0, 0, 1, 1},
  {&__pyx_n_s_outinphase, __pyx_k_outinphase, sizeof(__pyx_k_outinphase), 0, 0, 1, 1},
  {&__pyx_n_s_outinteger, __pyx_k_outinteger, sizeof(__pyx_k_outinteger), 0, 0, 1, 1},
  {&__pyx_n_s_outinteger_data, __pyx_k_outinteger_data, sizeof(__pyx_k_outinteger_data), 0, 0, 1, 1},
  {&__pyx_n_s_outleadsine, __pyx_k_outleadsine, sizeof(__pyx_k_outleadsine), 0, 0, 1, 1},
  {&__pyx_n_s_outmacd, __pyx_k_outmacd, sizeof(__pyx_k_outmacd), 0, 0, 1, 1},
  {&__pyx_n_s_outmacdhist, __pyx_k_outmacdhist, sizeof(__pyx_k_outmacdhist), 0, 0, 1, 1},
  {&__pyx_n_s_outmacdsignal, __pyx_k_outmacdsignal, sizeof(__pyx_k_outmacdsignal), 0, 0, 1, 1},
  {&__pyx_n_s_outmama, __pyx_k_outmama, sizeof(__pyx_k_outmama), 0, 0, 1, 1},
  {&__pyx_n_s_outmax, __pyx_k_outmax, sizeof(__pyx_k_outmax), 0, 0, 1, 1},
  {&__pyx_n_s_outmaxidx, __pyx_k_outmaxidx, sizeof(__pyx_k_outmaxidx), 0, 0, 1, 1},
  {&__pyx_n_s_outmaxidx_data, __pyx_k_outmaxidx_data, sizeof(__pyx_k_outmaxidx_data), 0, 0, 1, 1},
  {&__pyx_n_s_outmin, __pyx_k_outmin, sizeof(__pyx_k_outmin), 0, 0, 1, 1},
  {&__pyx_n_s_outminidx, __pyx_k_outminidx, sizeof(__pyx_k_outminidx), 0, 0, 1, 1},
  {&__pyx_n_s_outminidx_data, __pyx_k_outminidx_data, sizeof(__pyx_k_outminidx_data), 0, 0, 1, 1},
  {&__pyx_n_s_outnbelement, __pyx_k_outnbelement, sizeof(__pyx_k_outnbelement), 0, 0, 1, 1},
  {&__pyx_n_s_output, __pyx_k_output, sizeof(__pyx_k_output), 0, 0, 1, 1},
  {&__pyx_n_s_output_flags, __pyx_k_output_flags, sizeof(__pyx_k_output_flags), 0, 0, 1, 1},
  {&__pyx_n_s_output_name, __pyx_k_output_name, sizeof(__pyx_k_output_name), 0, 0, 1, 1},
  {&__pyx_n_s_output_names, __pyx_k_output_names, sizeof(__pyx_k_output_names), 0, 0, 1, 1},
  {&__pyx_n_s_outputs, __pyx_k_outputs, sizeof(__pyx_k_outputs), 0, 0, 1, 1},
  {&__pyx_n_s_outquadrature, __pyx_k_outquadrature, sizeof(__pyx_k_outquadrature), 0, 0, 1, 1},
  {&__pyx_n_s_outreal, __pyx_k_outreal, sizeof(__pyx_k_outreal), 0, 0, 1, 1},
  {&__pyx_n_s_outreallowerband, __pyx_k_outreallowerband, sizeof(__pyx_k_outreallowerband), 0, 0, 1, 1},
  {&__pyx_n_s_outrealmiddleband, __pyx_k_outrealmiddleband, sizeof(__pyx_k_outrealmiddleband), 0, 0, 1, 1},
  {&__pyx_n_s_outrealupperband, __pyx_k_outrealupperband, sizeof(__pyx_k_outrealupperband), 0, 0, 1, 1},
  {&__pyx_n_s_outsine, __pyx_k_outsine, sizeof(__pyx_k_outsine), 0, 0, 1, 1},
  {&__pyx_n_s_outslowd, __pyx_k_outslowd, sizeof(__pyx_k_outslowd), 0, 0, 1, 1},
  {&__pyx_n_s_outslowk, __pyx_k_outslowk, sizeof(__pyx_k_outslowk), 0, 0, 1, 1},
  {&__pyx_n_s_pandas, __pyx_k_pandas, sizeof(__pyx_k_pandas), 0, 0, 1, 1},
  {&__pyx_n_s_param, __pyx_k_param, sizeof(__pyx_k_param), 0, 0, 1, 1},
  {&__pyx_n_s_param_name, __pyx_k_param_name, sizeof(__pyx_k_param_name), 0, 0, 1, 1},
  {&__pyx_n_s_parameters, __pyx_k_parameters, sizeof(__pyx_k_parameters), 0, 0, 1, 1},
  {&__pyx_n_s_params, __pyx_k_params, sizeof(__pyx_k_params), 0, 0, 1, 1},
  {&__pyx_n_s_penetration, __pyx_k_penetration, sizeof(__pyx_k_penetration), 0, 0, 1, 1},
  {&__pyx_n_s_period, __pyx_k_period, sizeof(__pyx_k_period), 0, 0, 1, 1},
  {&__pyx_n_s_periods, __pyx_k_periods, sizeof(__pyx_k_periods), 0, 0, 1, 1},
  {&__pyx_n_s_periods_data, __pyx_k_periods_data, sizeof(__pyx_k_periods_data), 0, 0, 1, 1},
  {&__pyx_n_s_polars, __pyx_k_polars, sizeof(__pyx_k_polars), 0, 0, 1, 1},
  {&__pyx_n_s_pop, __pyx_k_pop, sizeof(__pyx_k_pop), 0, 0, 1, 1},
  {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1},
  {&__pyx_n_s_price, __pyx_k_price, sizeof(__pyx_k_price), 0, 0, 1, 1},
  {&__pyx_n_s_price0, __pyx_k_price0, sizeof(__pyx_k_price0), 0, 0, 1, 1},
  {&__pyx_n_s_price1, __pyx_k_price1, sizeof(__pyx_k_price1), 0, 0, 1, 1},
  {&__pyx_n_s_price_series, __pyx_k_price_series, sizeof(__pyx_k_price_series), 0, 0, 1, 1},
  {&__pyx_n_s_price_series_name_values, __pyx_k_price_series_name_values, sizeof(__pyx_k_price_series_name_values), 0, 0, 1, 1},
  {&__pyx_n_s_prices, __pyx_k_prices, sizeof(__pyx_k_prices), 0, 0, 1, 1},
  {&__pyx_n_s_property, __pyx_k_property, sizeof(__pyx_k_property), 0, 0, 1, 1},
  {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1},
  {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
  {&__pyx_n_s_rangetype, __pyx_k_rangetype, sizeof(__pyx_k_rangetype), 0, 0, 1, 1},
  {&__pyx_n_s_real, __pyx_k_real, sizeof(__pyx_k_real), 0, 0, 1, 1},
  {&__pyx_n_s_real0, __pyx_k_real0, sizeof(__pyx_k_real0), 0, 0, 1, 1},
  {&__pyx_n_s_real0_data, __pyx_k_real0_data, sizeof(__pyx_k_real0_data), 0, 0, 1, 1},
  {&__pyx_n_s_real1, __pyx_k_real1, sizeof(__pyx_k_real1), 0, 0, 1, 1},
  {&__pyx_n_s_real1_data, __pyx_k_real1_data, sizeof(__pyx_k_real1_data), 0, 0, 1, 1},
  {&__pyx_n_s_real_data, __pyx_k_real_data, sizeof(__pyx_k_real_data), 0, 0, 1, 1},
  {&__pyx_n_s_replace, __pyx_k_replace, sizeof(__pyx_k_replace), 0, 0, 1, 1},
  {&__pyx_n_s_repr, __pyx_k_repr, sizeof(__pyx_k_repr), 0, 0, 1, 1},
  {&__pyx_n_s_results, __pyx_k_results, sizeof(__pyx_k_results), 0, 0, 1, 1},
  {&__pyx_n_s_ret, __pyx_k_ret, sizeof(__pyx_k_ret), 0, 0, 1, 1},
  {&__pyx_n_s_retCode, __pyx_k_retCode, sizeof(__pyx_k_retCode), 0, 0, 1, 1},
  {&__pyx_n_s_ret_code, __pyx_k_ret_code, sizeof(__pyx_k_ret_code), 0, 0, 1, 1},
  {&__pyx_n_s_run, __pyx_k_run, sizeof(__pyx_k_run), 0, 0, 1, 1},
  {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1},
  {&__pyx_kp_s_s_2, __pyx_k_s_2, sizeof(__pyx_k_s_2), 0, 0, 1, 0},
  {&__pyx_kp_s_s_3, __pyx_k_s_3, sizeof(__pyx_k_s_3), 0, 0, 1, 0},
  {&__pyx_kp_s_s_4, __pyx_k_s_4, sizeof(__pyx_k_s_4), 0, 0, 1, 0},
  {&__pyx_kp_s_s_function_failed_with_error_co, __pyx_k_s_function_failed_with_error_co, sizeof(__pyx_k_s_function_failed_with_error_co), 0, 0, 1, 0},
  {&__pyx_kp_s_s_s, __pyx_k_s_s, sizeof(__pyx_k_s_s), 0, 0, 1, 0},
  {&__pyx_kp_s_s_s_2, __pyx_k_s_s_2, sizeof(__pyx_k_s_s_2), 0, 0, 1, 0},
  {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1},
  {&__pyx_n_s_series, __pyx_k_series, sizeof(__pyx_k_series), 0, 0, 1, 1},
  {&__pyx_n_s_set_function_args, __pyx_k_set_function_args, sizeof(__pyx_k_set_function_args), 0, 0, 1, 1},
  {&__pyx_n_s_set_input_arrays, __pyx_k_set_input_arrays, sizeof(__pyx_k_set_input_arrays), 0, 0, 1, 1},
  {&__pyx_n_s_set_input_names, __pyx_k_set_input_names, sizeof(__pyx_k_set_input_names), 0, 0, 1, 1},
  {&__pyx_n_s_set_parameters, __pyx_k_set_parameters, sizeof(__pyx_k_set_parameters), 0, 0, 1, 1},
  {&__pyx_n_s_settingtype, __pyx_k_settingtype, sizeof(__pyx_k_settingtype), 0, 0, 1, 1},
  {&__pyx_n_s_signalmatype, __pyx_k_signalmatype, sizeof(__pyx_k_signalmatype), 0, 0, 1, 1},
  {&__pyx_n_s_signalperiod, __pyx_k_signalperiod, sizeof(__pyx_k_signalperiod), 0, 0, 1, 1},
  {&__pyx_n_s_skip_first, __pyx_k_skip_first, sizeof(__pyx_k_skip_first), 0, 0, 1, 1},
  {&__pyx_n_s_slowd_matype, __pyx_k_slowd_matype, sizeof(__pyx_k_slowd_matype), 0, 0, 1, 1},
  {&__pyx_n_s_slowd_period, __pyx_k_slowd_period, sizeof(__pyx_k_slowd_period), 0, 0, 1, 1},
  {&__pyx_n_s_slowk_matype, __pyx_k_slowk_matype, sizeof(__pyx_k_slowk_matype), 0, 0, 1, 1},
  {&__pyx_n_s_slowk_period, __pyx_k_slowk_period, sizeof(__pyx_k_slowk_period), 0, 0, 1, 1},
  {&__pyx_n_s_slowlimit, __pyx_k_slowlimit, sizeof(__pyx_k_slowlimit), 0, 0, 1, 1},
  {&__pyx_n_s_slowmatype, __pyx_k_slowmatype, sizeof(__pyx_k_slowmatype), 0, 0, 1, 1},
  {&__pyx_n_s_slowperiod, __pyx_k_slowperiod, sizeof(__pyx_k_slowperiod), 0, 0, 1, 1},
  {&__pyx_n_s_startvalue, __pyx_k_startvalue, sizeof(__pyx_k_startvalue), 0, 0, 1, 1},
  {&__pyx_n_s_str, __pyx_k_str, sizeof(__pyx_k_str), 0, 0, 1, 1},
  {&__pyx_n_s_str2bytes, __pyx_k_str2bytes, sizeof(__pyx_k_str2bytes), 0, 0, 1, 1},
  {&__pyx_n_s_stream_ACOS, __pyx_k_stream_ACOS, sizeof(__pyx_k_stream_ACOS), 0, 0, 1, 1},
  {&__pyx_n_s_stream_AD, __pyx_k_stream_AD, sizeof(__pyx_k_stream_AD), 0, 0, 1, 1},
  {&__pyx_n_s_stream_ADD, __pyx_k_stream_ADD, sizeof(__pyx_k_stream_ADD), 0, 0, 1, 1},
  {&__pyx_n_s_stream_ADOSC, __pyx_k_stream_ADOSC, sizeof(__pyx_k_stream_ADOSC), 0, 0, 1, 1},
  {&__pyx_n_s_stream_ADX, __pyx_k_stream_ADX, sizeof(__pyx_k_stream_ADX), 0, 0, 1, 1},
  {&__pyx_n_s_stream_ADXR, __pyx_k_stream_ADXR, sizeof(__pyx_k_stream_ADXR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_APO, __pyx_k_stream_APO, sizeof(__pyx_k_stream_APO), 0, 0, 1, 1},
  {&__pyx_n_s_stream_AROON, __pyx_k_stream_AROON, sizeof(__pyx_k_stream_AROON), 0, 0, 1, 1},
  {&__pyx_n_s_stream_AROONOSC, __pyx_k_stream_AROONOSC, sizeof(__pyx_k_stream_AROONOSC), 0, 0, 1, 1},
  {&__pyx_n_s_stream_ASIN, __pyx_k_stream_ASIN, sizeof(__pyx_k_stream_ASIN), 0, 0, 1, 1},
  {&__pyx_n_s_stream_ATAN, __pyx_k_stream_ATAN, sizeof(__pyx_k_stream_ATAN), 0, 0, 1, 1},
  {&__pyx_n_s_stream_ATR, __pyx_k_stream_ATR, sizeof(__pyx_k_stream_ATR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_AVGPRICE, __pyx_k_stream_AVGPRICE, sizeof(__pyx_k_stream_AVGPRICE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_BBANDS, __pyx_k_stream_BBANDS, sizeof(__pyx_k_stream_BBANDS), 0, 0, 1, 1},
  {&__pyx_n_s_stream_BETA, __pyx_k_stream_BETA, sizeof(__pyx_k_stream_BETA), 0, 0, 1, 1},
  {&__pyx_n_s_stream_BOP, __pyx_k_stream_BOP, sizeof(__pyx_k_stream_BOP), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CCI, __pyx_k_stream_CCI, sizeof(__pyx_k_stream_CCI), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDL2CROWS, __pyx_k_stream_CDL2CROWS, sizeof(__pyx_k_stream_CDL2CROWS), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDL3BLACKCROWS, __pyx_k_stream_CDL3BLACKCROWS, sizeof(__pyx_k_stream_CDL3BLACKCROWS), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDL3INSIDE, __pyx_k_stream_CDL3INSIDE, sizeof(__pyx_k_stream_CDL3INSIDE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDL3LINESTRIKE, __pyx_k_stream_CDL3LINESTRIKE, sizeof(__pyx_k_stream_CDL3LINESTRIKE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDL3OUTSIDE, __pyx_k_stream_CDL3OUTSIDE, sizeof(__pyx_k_stream_CDL3OUTSIDE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDL3STARSINSOUTH, __pyx_k_stream_CDL3STARSINSOUTH, sizeof(__pyx_k_stream_CDL3STARSINSOUTH), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDL3WHITESOLDIERS, __pyx_k_stream_CDL3WHITESOLDIERS, sizeof(__pyx_k_stream_CDL3WHITESOLDIERS), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLABANDONEDBABY, __pyx_k_stream_CDLABANDONEDBABY, sizeof(__pyx_k_stream_CDLABANDONEDBABY), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLADVANCEBLOCK, __pyx_k_stream_CDLADVANCEBLOCK, sizeof(__pyx_k_stream_CDLADVANCEBLOCK), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLBELTHOLD, __pyx_k_stream_CDLBELTHOLD, sizeof(__pyx_k_stream_CDLBELTHOLD), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLBREAKAWAY, __pyx_k_stream_CDLBREAKAWAY, sizeof(__pyx_k_stream_CDLBREAKAWAY), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLCLOSINGMARUBOZU, __pyx_k_stream_CDLCLOSINGMARUBOZU, sizeof(__pyx_k_stream_CDLCLOSINGMARUBOZU), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLCONCEALBABYSWALL, __pyx_k_stream_CDLCONCEALBABYSWALL, sizeof(__pyx_k_stream_CDLCONCEALBABYSWALL), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLCOUNTERATTACK, __pyx_k_stream_CDLCOUNTERATTACK, sizeof(__pyx_k_stream_CDLCOUNTERATTACK), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLDARKCLOUDCOVER, __pyx_k_stream_CDLDARKCLOUDCOVER, sizeof(__pyx_k_stream_CDLDARKCLOUDCOVER), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLDOJI, __pyx_k_stream_CDLDOJI, sizeof(__pyx_k_stream_CDLDOJI), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLDOJISTAR, __pyx_k_stream_CDLDOJISTAR, sizeof(__pyx_k_stream_CDLDOJISTAR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLDRAGONFLYDOJI, __pyx_k_stream_CDLDRAGONFLYDOJI, sizeof(__pyx_k_stream_CDLDRAGONFLYDOJI), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLENGULFING, __pyx_k_stream_CDLENGULFING, sizeof(__pyx_k_stream_CDLENGULFING), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLEVENINGDOJISTAR, __pyx_k_stream_CDLEVENINGDOJISTAR, sizeof(__pyx_k_stream_CDLEVENINGDOJISTAR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLEVENINGSTAR, __pyx_k_stream_CDLEVENINGSTAR, sizeof(__pyx_k_stream_CDLEVENINGSTAR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLGAPSIDESIDEWHITE, __pyx_k_stream_CDLGAPSIDESIDEWHITE, sizeof(__pyx_k_stream_CDLGAPSIDESIDEWHITE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLGRAVESTONEDOJI, __pyx_k_stream_CDLGRAVESTONEDOJI, sizeof(__pyx_k_stream_CDLGRAVESTONEDOJI), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLHAMMER, __pyx_k_stream_CDLHAMMER, sizeof(__pyx_k_stream_CDLHAMMER), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLHANGINGMAN, __pyx_k_stream_CDLHANGINGMAN, sizeof(__pyx_k_stream_CDLHANGINGMAN), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLHARAMI, __pyx_k_stream_CDLHARAMI, sizeof(__pyx_k_stream_CDLHARAMI), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLHARAMICROSS, __pyx_k_stream_CDLHARAMICROSS, sizeof(__pyx_k_stream_CDLHARAMICROSS), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLHIGHWAVE, __pyx_k_stream_CDLHIGHWAVE, sizeof(__pyx_k_stream_CDLHIGHWAVE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLHIKKAKE, __pyx_k_stream_CDLHIKKAKE, sizeof(__pyx_k_stream_CDLHIKKAKE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLHIKKAKEMOD, __pyx_k_stream_CDLHIKKAKEMOD, sizeof(__pyx_k_stream_CDLHIKKAKEMOD), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLHOMINGPIGEON, __pyx_k_stream_CDLHOMINGPIGEON, sizeof(__pyx_k_stream_CDLHOMINGPIGEON), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLIDENTICAL3CROWS, __pyx_k_stream_CDLIDENTICAL3CROWS, sizeof(__pyx_k_stream_CDLIDENTICAL3CROWS), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLINNECK, __pyx_k_stream_CDLINNECK, sizeof(__pyx_k_stream_CDLINNECK), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLINVERTEDHAMMER, __pyx_k_stream_CDLINVERTEDHAMMER, sizeof(__pyx_k_stream_CDLINVERTEDHAMMER), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLKICKING, __pyx_k_stream_CDLKICKING, sizeof(__pyx_k_stream_CDLKICKING), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLKICKINGBYLENGTH, __pyx_k_stream_CDLKICKINGBYLENGTH, sizeof(__pyx_k_stream_CDLKICKINGBYLENGTH), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLLADDERBOTTOM, __pyx_k_stream_CDLLADDERBOTTOM, sizeof(__pyx_k_stream_CDLLADDERBOTTOM), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLLONGLEGGEDDOJI, __pyx_k_stream_CDLLONGLEGGEDDOJI, sizeof(__pyx_k_stream_CDLLONGLEGGEDDOJI), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLLONGLINE, __pyx_k_stream_CDLLONGLINE, sizeof(__pyx_k_stream_CDLLONGLINE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLMARUBOZU, __pyx_k_stream_CDLMARUBOZU, sizeof(__pyx_k_stream_CDLMARUBOZU), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLMATCHINGLOW, __pyx_k_stream_CDLMATCHINGLOW, sizeof(__pyx_k_stream_CDLMATCHINGLOW), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLMATHOLD, __pyx_k_stream_CDLMATHOLD, sizeof(__pyx_k_stream_CDLMATHOLD), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLMORNINGDOJISTAR, __pyx_k_stream_CDLMORNINGDOJISTAR, sizeof(__pyx_k_stream_CDLMORNINGDOJISTAR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLMORNINGSTAR, __pyx_k_stream_CDLMORNINGSTAR, sizeof(__pyx_k_stream_CDLMORNINGSTAR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLONNECK, __pyx_k_stream_CDLONNECK, sizeof(__pyx_k_stream_CDLONNECK), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLPIERCING, __pyx_k_stream_CDLPIERCING, sizeof(__pyx_k_stream_CDLPIERCING), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLRICKSHAWMAN, __pyx_k_stream_CDLRICKSHAWMAN, sizeof(__pyx_k_stream_CDLRICKSHAWMAN), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLRISEFALL3METHODS, __pyx_k_stream_CDLRISEFALL3METHODS, sizeof(__pyx_k_stream_CDLRISEFALL3METHODS), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLSEPARATINGLINES, __pyx_k_stream_CDLSEPARATINGLINES, sizeof(__pyx_k_stream_CDLSEPARATINGLINES), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLSHOOTINGSTAR, __pyx_k_stream_CDLSHOOTINGSTAR, sizeof(__pyx_k_stream_CDLSHOOTINGSTAR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLSHORTLINE, __pyx_k_stream_CDLSHORTLINE, sizeof(__pyx_k_stream_CDLSHORTLINE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLSPINNINGTOP, __pyx_k_stream_CDLSPINNINGTOP, sizeof(__pyx_k_stream_CDLSPINNINGTOP), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLSTALLEDPATTERN, __pyx_k_stream_CDLSTALLEDPATTERN, sizeof(__pyx_k_stream_CDLSTALLEDPATTERN), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLSTICKSANDWICH, __pyx_k_stream_CDLSTICKSANDWICH, sizeof(__pyx_k_stream_CDLSTICKSANDWICH), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLTAKURI, __pyx_k_stream_CDLTAKURI, sizeof(__pyx_k_stream_CDLTAKURI), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLTASUKIGAP, __pyx_k_stream_CDLTASUKIGAP, sizeof(__pyx_k_stream_CDLTASUKIGAP), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLTHRUSTING, __pyx_k_stream_CDLTHRUSTING, sizeof(__pyx_k_stream_CDLTHRUSTING), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLTRISTAR, __pyx_k_stream_CDLTRISTAR, sizeof(__pyx_k_stream_CDLTRISTAR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLUNIQUE3RIVER, __pyx_k_stream_CDLUNIQUE3RIVER, sizeof(__pyx_k_stream_CDLUNIQUE3RIVER), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLUPSIDEGAP2CROWS, __pyx_k_stream_CDLUPSIDEGAP2CROWS, sizeof(__pyx_k_stream_CDLUPSIDEGAP2CROWS), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CDLXSIDEGAP3METHODS, __pyx_k_stream_CDLXSIDEGAP3METHODS, sizeof(__pyx_k_stream_CDLXSIDEGAP3METHODS), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CEIL, __pyx_k_stream_CEIL, sizeof(__pyx_k_stream_CEIL), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CMO, __pyx_k_stream_CMO, sizeof(__pyx_k_stream_CMO), 0, 0, 1, 1},
  {&__pyx_n_s_stream_CORREL, __pyx_k_stream_CORREL, sizeof(__pyx_k_stream_CORREL), 0, 0, 1, 1},
  {&__pyx_n_s_stream_COS, __pyx_k_stream_COS, sizeof(__pyx_k_stream_COS), 0, 0, 1, 1},
  {&__pyx_n_s_stream_COSH, __pyx_k_stream_COSH, sizeof(__pyx_k_stream_COSH), 0, 0, 1, 1},
  {&__pyx_n_s_stream_DEMA, __pyx_k_stream_DEMA, sizeof(__pyx_k_stream_DEMA), 0, 0, 1, 1},
  {&__pyx_n_s_stream_DIV, __pyx_k_stream_DIV, sizeof(__pyx_k_stream_DIV), 0, 0, 1, 1},
  {&__pyx_n_s_stream_DX, __pyx_k_stream_DX, sizeof(__pyx_k_stream_DX), 0, 0, 1, 1},
  {&__pyx_n_s_stream_EMA, __pyx_k_stream_EMA, sizeof(__pyx_k_stream_EMA), 0, 0, 1, 1},
  {&__pyx_n_s_stream_EXP, __pyx_k_stream_EXP, sizeof(__pyx_k_stream_EXP), 0, 0, 1, 1},
  {&__pyx_n_s_stream_FLOOR, __pyx_k_stream_FLOOR, sizeof(__pyx_k_stream_FLOOR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_HT_DCPERIOD, __pyx_k_stream_HT_DCPERIOD, sizeof(__pyx_k_stream_HT_DCPERIOD), 0, 0, 1, 1},
  {&__pyx_n_s_stream_HT_DCPHASE, __pyx_k_stream_HT_DCPHASE, sizeof(__pyx_k_stream_HT_DCPHASE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_HT_PHASOR, __pyx_k_stream_HT_PHASOR, sizeof(__pyx_k_stream_HT_PHASOR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_HT_SINE, __pyx_k_stream_HT_SINE, sizeof(__pyx_k_stream_HT_SINE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_HT_TRENDLINE, __pyx_k_stream_HT_TRENDLINE, sizeof(__pyx_k_stream_HT_TRENDLINE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_HT_TRENDMODE, __pyx_k_stream_HT_TRENDMODE, sizeof(__pyx_k_stream_HT_TRENDMODE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_KAMA, __pyx_k_stream_KAMA, sizeof(__pyx_k_stream_KAMA), 0, 0, 1, 1},
  {&__pyx_n_s_stream_LINEARREG, __pyx_k_stream_LINEARREG, sizeof(__pyx_k_stream_LINEARREG), 0, 0, 1, 1},
  {&__pyx_n_s_stream_LINEARREG_ANGLE, __pyx_k_stream_LINEARREG_ANGLE, sizeof(__pyx_k_stream_LINEARREG_ANGLE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_LINEARREG_INTERCEPT, __pyx_k_stream_LINEARREG_INTERCEPT, sizeof(__pyx_k_stream_LINEARREG_INTERCEPT), 0, 0, 1, 1},
  {&__pyx_n_s_stream_LINEARREG_SLOPE, __pyx_k_stream_LINEARREG_SLOPE, sizeof(__pyx_k_stream_LINEARREG_SLOPE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_LN, __pyx_k_stream_LN, sizeof(__pyx_k_stream_LN), 0, 0, 1, 1},
  {&__pyx_n_s_stream_LOG10, __pyx_k_stream_LOG10, sizeof(__pyx_k_stream_LOG10), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MA, __pyx_k_stream_MA, sizeof(__pyx_k_stream_MA), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MACD, __pyx_k_stream_MACD, sizeof(__pyx_k_stream_MACD), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MACDEXT, __pyx_k_stream_MACDEXT, sizeof(__pyx_k_stream_MACDEXT), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MACDFIX, __pyx_k_stream_MACDFIX, sizeof(__pyx_k_stream_MACDFIX), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MAMA, __pyx_k_stream_MAMA, sizeof(__pyx_k_stream_MAMA), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MAVP, __pyx_k_stream_MAVP, sizeof(__pyx_k_stream_MAVP), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MAX, __pyx_k_stream_MAX, sizeof(__pyx_k_stream_MAX), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MAXINDEX, __pyx_k_stream_MAXINDEX, sizeof(__pyx_k_stream_MAXINDEX), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MEDPRICE, __pyx_k_stream_MEDPRICE, sizeof(__pyx_k_stream_MEDPRICE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MFI, __pyx_k_stream_MFI, sizeof(__pyx_k_stream_MFI), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MIDPOINT, __pyx_k_stream_MIDPOINT, sizeof(__pyx_k_stream_MIDPOINT), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MIDPRICE, __pyx_k_stream_MIDPRICE, sizeof(__pyx_k_stream_MIDPRICE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MIN, __pyx_k_stream_MIN, sizeof(__pyx_k_stream_MIN), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MININDEX, __pyx_k_stream_MININDEX, sizeof(__pyx_k_stream_MININDEX), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MINMAX, __pyx_k_stream_MINMAX, sizeof(__pyx_k_stream_MINMAX), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MINMAXINDEX, __pyx_k_stream_MINMAXINDEX, sizeof(__pyx_k_stream_MINMAXINDEX), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MINUS_DI, __pyx_k_stream_MINUS_DI, sizeof(__pyx_k_stream_MINUS_DI), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MINUS_DM, __pyx_k_stream_MINUS_DM, sizeof(__pyx_k_stream_MINUS_DM), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MOM, __pyx_k_stream_MOM, sizeof(__pyx_k_stream_MOM), 0, 0, 1, 1},
  {&__pyx_n_s_stream_MULT, __pyx_k_stream_MULT, sizeof(__pyx_k_stream_MULT), 0, 0, 1, 1},
  {&__pyx_n_s_stream_NATR, __pyx_k_stream_NATR, sizeof(__pyx_k_stream_NATR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_OBV, __pyx_k_stream_OBV, sizeof(__pyx_k_stream_OBV), 0, 0, 1, 1},
  {&__pyx_n_s_stream_PLUS_DI, __pyx_k_stream_PLUS_DI, sizeof(__pyx_k_stream_PLUS_DI), 0, 0, 1, 1},
  {&__pyx_n_s_stream_PLUS_DM, __pyx_k_stream_PLUS_DM, sizeof(__pyx_k_stream_PLUS_DM), 0, 0, 1, 1},
  {&__pyx_n_s_stream_PPO, __pyx_k_stream_PPO, sizeof(__pyx_k_stream_PPO), 0, 0, 1, 1},
  {&__pyx_n_s_stream_ROC, __pyx_k_stream_ROC, sizeof(__pyx_k_stream_ROC), 0, 0, 1, 1},
  {&__pyx_n_s_stream_ROCP, __pyx_k_stream_ROCP, sizeof(__pyx_k_stream_ROCP), 0, 0, 1, 1},
  {&__pyx_n_s_stream_ROCR, __pyx_k_stream_ROCR, sizeof(__pyx_k_stream_ROCR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_ROCR100, __pyx_k_stream_ROCR100, sizeof(__pyx_k_stream_ROCR100), 0, 0, 1, 1},
  {&__pyx_n_s_stream_RSI, __pyx_k_stream_RSI, sizeof(__pyx_k_stream_RSI), 0, 0, 1, 1},
  {&__pyx_n_s_stream_SAR, __pyx_k_stream_SAR, sizeof(__pyx_k_stream_SAR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_SAREXT, __pyx_k_stream_SAREXT, sizeof(__pyx_k_stream_SAREXT), 0, 0, 1, 1},
  {&__pyx_n_s_stream_SIN, __pyx_k_stream_SIN, sizeof(__pyx_k_stream_SIN), 0, 0, 1, 1},
  {&__pyx_n_s_stream_SINH, __pyx_k_stream_SINH, sizeof(__pyx_k_stream_SINH), 0, 0, 1, 1},
  {&__pyx_n_s_stream_SMA, __pyx_k_stream_SMA, sizeof(__pyx_k_stream_SMA), 0, 0, 1, 1},
  {&__pyx_n_s_stream_SQRT, __pyx_k_stream_SQRT, sizeof(__pyx_k_stream_SQRT), 0, 0, 1, 1},
  {&__pyx_n_s_stream_STDDEV, __pyx_k_stream_STDDEV, sizeof(__pyx_k_stream_STDDEV), 0, 0, 1, 1},
  {&__pyx_n_s_stream_STOCH, __pyx_k_stream_STOCH, sizeof(__pyx_k_stream_STOCH), 0, 0, 1, 1},
  {&__pyx_n_s_stream_STOCHF, __pyx_k_stream_STOCHF, sizeof(__pyx_k_stream_STOCHF), 0, 0, 1, 1},
  {&__pyx_n_s_stream_STOCHRSI, __pyx_k_stream_STOCHRSI, sizeof(__pyx_k_stream_STOCHRSI), 0, 0, 1, 1},
  {&__pyx_n_s_stream_SUB, __pyx_k_stream_SUB, sizeof(__pyx_k_stream_SUB), 0, 0, 1, 1},
  {&__pyx_n_s_stream_SUM, __pyx_k_stream_SUM, sizeof(__pyx_k_stream_SUM), 0, 0, 1, 1},
  {&__pyx_n_s_stream_T3, __pyx_k_stream_T3, sizeof(__pyx_k_stream_T3), 0, 0, 1, 1},
  {&__pyx_n_s_stream_TAN, __pyx_k_stream_TAN, sizeof(__pyx_k_stream_TAN), 0, 0, 1, 1},
  {&__pyx_n_s_stream_TANH, __pyx_k_stream_TANH, sizeof(__pyx_k_stream_TANH), 0, 0, 1, 1},
  {&__pyx_n_s_stream_TEMA, __pyx_k_stream_TEMA, sizeof(__pyx_k_stream_TEMA), 0, 0, 1, 1},
  {&__pyx_n_s_stream_TRANGE, __pyx_k_stream_TRANGE, sizeof(__pyx_k_stream_TRANGE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_TRIMA, __pyx_k_stream_TRIMA, sizeof(__pyx_k_stream_TRIMA), 0, 0, 1, 1},
  {&__pyx_n_s_stream_TRIX, __pyx_k_stream_TRIX, sizeof(__pyx_k_stream_TRIX), 0, 0, 1, 1},
  {&__pyx_n_s_stream_TSF, __pyx_k_stream_TSF, sizeof(__pyx_k_stream_TSF), 0, 0, 1, 1},
  {&__pyx_n_s_stream_TYPPRICE, __pyx_k_stream_TYPPRICE, sizeof(__pyx_k_stream_TYPPRICE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_ULTOSC, __pyx_k_stream_ULTOSC, sizeof(__pyx_k_stream_ULTOSC), 0, 0, 1, 1},
  {&__pyx_n_s_stream_VAR, __pyx_k_stream_VAR, sizeof(__pyx_k_stream_VAR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_WCLPRICE, __pyx_k_stream_WCLPRICE, sizeof(__pyx_k_stream_WCLPRICE), 0, 0, 1, 1},
  {&__pyx_n_s_stream_WILLR, __pyx_k_stream_WILLR, sizeof(__pyx_k_stream_WILLR), 0, 0, 1, 1},
  {&__pyx_n_s_stream_WMA, __pyx_k_stream_WMA, sizeof(__pyx_k_stream_WMA), 0, 0, 1, 1},
  {&__pyx_kp_s_stream__s, __pyx_k_stream__s, sizeof(__pyx_k_stream__s), 0, 0, 1, 0},
  {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1},
  {&__pyx_n_s_ta_func_unst_ids, __pyx_k_ta_func_unst_ids, sizeof(__pyx_k_ta_func_unst_ids), 0, 0, 1, 1},
  {&__pyx_n_s_ta_getFuncInfo, __pyx_k_ta_getFuncInfo, sizeof(__pyx_k_ta_getFuncInfo), 0, 0, 1, 1},
  {&__pyx_n_s_ta_getFuncTable, __pyx_k_ta_getFuncTable, sizeof(__pyx_k_ta_getFuncTable), 0, 0, 1, 1},
  {&__pyx_n_s_ta_getGroupTable, __pyx_k_ta_getGroupTable, sizeof(__pyx_k_ta_getGroupTable), 0, 0, 1, 1},
  {&__pyx_n_s_ta_getInputParameterInfo, __pyx_k_ta_getInputParameterInfo, sizeof(__pyx_k_ta_getInputParameterInfo), 0, 0, 1, 1},
  {&__pyx_n_s_ta_getOptInputParameterInfo, __pyx_k_ta_getOptInputParameterInfo, sizeof(__pyx_k_ta_getOptInputParameterInfo), 0, 0, 1, 1},
  {&__pyx_n_s_ta_getOutputParameterInfo, __pyx_k_ta_getOutputParameterInfo, sizeof(__pyx_k_ta_getOutputParameterInfo), 0, 0, 1, 1},
  {&__pyx_n_s_ta_get_compatibility, __pyx_k_ta_get_compatibility, sizeof(__pyx_k_ta_get_compatibility), 0, 0, 1, 1},
  {&__pyx_n_s_ta_get_unstable_period, __pyx_k_ta_get_unstable_period, sizeof(__pyx_k_ta_get_unstable_period), 0, 0, 1, 1},
  {&__pyx_n_s_ta_initialize, __pyx_k_ta_initialize, sizeof(__pyx_k_ta_initialize), 0, 0, 1, 1},
  {&__pyx_n_s_ta_restore_candle_default_setti, __pyx_k_ta_restore_candle_default_setti, sizeof(__pyx_k_ta_restore_candle_default_setti), 0, 0, 1, 1},
  {&__pyx_n_s_ta_set_candle_settings, __pyx_k_ta_set_candle_settings, sizeof(__pyx_k_ta_set_candle_settings), 0, 0, 1, 1},
  {&__pyx_n_s_ta_set_compatibility, __pyx_k_ta_set_compatibility, sizeof(__pyx_k_ta_set_compatibility), 0, 0, 1, 1},
  {&__pyx_n_s_ta_set_unstable_period, __pyx_k_ta_set_unstable_period, sizeof(__pyx_k_ta_set_unstable_period), 0, 0, 1, 1},
  {&__pyx_n_s_ta_shutdown, __pyx_k_ta_shutdown, sizeof(__pyx_k_ta_shutdown), 0, 0, 1, 1},
  {&__pyx_n_s_ta_version, __pyx_k_ta_version, sizeof(__pyx_k_ta_version), 0, 0, 1, 1},
  {&__pyx_n_s_table, __pyx_k_table, sizeof(__pyx_k_table), 0, 0, 1, 1},
  {&__pyx_kp_s_talib__abstract_pxi, __pyx_k_talib__abstract_pxi, sizeof(__pyx_k_talib__abstract_pxi), 0, 0, 1, 0},
  {&__pyx_kp_s_talib__common_pxi, __pyx_k_talib__common_pxi, sizeof(__pyx_k_talib__common_pxi), 0, 0, 1, 0},
  {&__pyx_kp_s_talib__func_pxi, __pyx_k_talib__func_pxi, sizeof(__pyx_k_talib__func_pxi), 0, 0, 1, 0},
  {&__pyx_kp_s_talib__stream_pxi, __pyx_k_talib__stream_pxi, sizeof(__pyx_k_talib__stream_pxi), 0, 0, 1, 0},
  {&__pyx_n_s_talib__ta_lib, __pyx_k_talib__ta_lib, sizeof(__pyx_k_talib__ta_lib), 0, 0, 1, 1},
  {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
  {&__pyx_n_s_timeStamp, __pyx_k_timeStamp, sizeof(__pyx_k_timeStamp), 0, 0, 1, 1},
  {&__pyx_n_s_timeperiod, __pyx_k_timeperiod, sizeof(__pyx_k_timeperiod), 0, 0, 1, 1},
  {&__pyx_n_s_timeperiod1, __pyx_k_timeperiod1, sizeof(__pyx_k_timeperiod1), 0, 0, 1, 1},
  {&__pyx_n_s_timeperiod2, __pyx_k_timeperiod2, sizeof(__pyx_k_timeperiod2), 0, 0, 1, 1},
  {&__pyx_n_s_timeperiod3, __pyx_k_timeperiod3, sizeof(__pyx_k_timeperiod3), 0, 0, 1, 1},
  {&__pyx_n_s_to_numpy, __pyx_k_to_numpy, sizeof(__pyx_k_to_numpy), 0, 0, 1, 1},
  {&__pyx_n_s_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 0, 1, 1},
  {&__pyx_n_s_type_2, __pyx_k_type_2, sizeof(__pyx_k_type_2), 0, 0, 1, 1},
  {&__pyx_n_s_unicode, __pyx_k_unicode, sizeof(__pyx_k_unicode), 0, 0, 1, 1},
  {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
  {&__pyx_n_s_update_info, __pyx_k_update_info, sizeof(__pyx_k_update_info), 0, 0, 1, 1},
  {&__pyx_n_s_upper, __pyx_k_upper, sizeof(__pyx_k_upper), 0, 0, 1, 1},
  {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
  {&__pyx_n_s_value_range, __pyx_k_value_range, sizeof(__pyx_k_value_range), 0, 0, 1, 1},
  {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1},
  {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1},
  {&__pyx_n_s_vfactor, __pyx_k_vfactor, sizeof(__pyx_k_vfactor), 0, 0, 1, 1},
  {&__pyx_n_s_volume, __pyx_k_volume, sizeof(__pyx_k_volume), 0, 0, 1, 1},
  {&__pyx_n_s_volume_data, __pyx_k_volume_data, sizeof(__pyx_k_volume_data), 0, 0, 1, 1},
  {&__pyx_n_s_xrange, __pyx_k_xrange, sizeof(__pyx_k_xrange), 0, 0, 1, 1},
  {0, 0, 0, 0, 0, 0, 0}
};
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
  __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(0, 60, __pyx_L1_error)
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 61, __pyx_L1_error)
  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 82, __pyx_L1_error)
  __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 7, __pyx_L1_error)
  __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_n_s_property); if (!__pyx_builtin_property) __PYX_ERR(1, 147, __pyx_L1_error)
  #if PY_MAJOR_VERSION >= 3
  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) __PYX_ERR(1, 123, __pyx_L1_error)
  #else
  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) __PYX_ERR(1, 123, __pyx_L1_error)
  #endif
  __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(1, 401, __pyx_L1_error)
  __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 405, __pyx_L1_error)
  __pyx_builtin_min = __Pyx_GetBuiltinName(__pyx_n_s_min); if (!__pyx_builtin_min) __PYX_ERR(1, 560, __pyx_L1_error)
  __pyx_builtin_max = __Pyx_GetBuiltinName(__pyx_n_s_max); if (!__pyx_builtin_max) __PYX_ERR(1, 561, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_input_array_type_is_not_double); if (unlikely(!__pyx_tuple_)) __PYX_ERR(2, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple_);
  __Pyx_GIVEREF(__pyx_tuple_);

  __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_input_array_has_wrong_dimensions); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(2, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__2);
  __Pyx_GIVEREF(__pyx_tuple__2);

  __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_input_array_lengths_are_differen); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__3);
  __Pyx_GIVEREF(__pyx_tuple__3);

  __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_inputs_are_all_NaN); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__4);
  __Pyx_GIVEREF(__pyx_tuple__4);

  __pyx_tuple__7 = PyTuple_Pack(2, __pyx_n_s_real, __pyx_n_s_price); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__7);
  __Pyx_GIVEREF(__pyx_tuple__7);

  __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(4, 945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__12);
  __Pyx_GIVEREF(__pyx_tuple__12);

  __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(4, 951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__13);
  __Pyx_GIVEREF(__pyx_tuple__13);

  __pyx_tuple__14 = PyTuple_Pack(1, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__14);
  __Pyx_GIVEREF(__pyx_tuple__14);
  __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __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__15)) __PYX_ERR(0, 50, __pyx_L1_error)

  __pyx_tuple__16 = PyTuple_Pack(1, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__16);
  __Pyx_GIVEREF(__pyx_tuple__16);
  __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__16, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_shutdown, 55, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 55, __pyx_L1_error)

  __pyx_tuple__18 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__18);
  __Pyx_GIVEREF(__pyx_tuple__18);

  __pyx_tuple__19 = PyTuple_Pack(1, __pyx_int_9); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__19);
  __Pyx_GIVEREF(__pyx_tuple__19);

  __pyx_tuple__20 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__20);
  __Pyx_GIVEREF(__pyx_tuple__20);
  __pyx_codeobj__21 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__20, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_init, 63, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__21)) __PYX_ERR(0, 63, __pyx_L1_error)

  __pyx_tuple__22 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__22);
  __Pyx_GIVEREF(__pyx_tuple__22);
  __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_getitem, 76, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(0, 76, __pyx_L1_error)

  __pyx_tuple__24 = PyTuple_Pack(4, __pyx_n_s_name, __pyx_n_s_period, __pyx_n_s_ret_code, __pyx_n_s_id); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__24);
  __Pyx_GIVEREF(__pyx_tuple__24);
  __pyx_codeobj__25 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__24, __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__25)) __PYX_ERR(0, 90, __pyx_L1_error)

  __pyx_tuple__26 = PyTuple_Pack(3, __pyx_n_s_name, __pyx_n_s_period, __pyx_n_s_id); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__26);
  __Pyx_GIVEREF(__pyx_tuple__26);
  __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__26, __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__27)) __PYX_ERR(0, 96, __pyx_L1_error)

  __pyx_tuple__28 = PyTuple_Pack(2, __pyx_n_s_value, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__28);
  __Pyx_GIVEREF(__pyx_tuple__28);
  __pyx_codeobj__29 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __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__29)) __PYX_ERR(0, 102, __pyx_L1_error)

  __pyx_tuple__30 = PyTuple_Pack(1, __pyx_n_s_value); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__30);
  __Pyx_GIVEREF(__pyx_tuple__30);
  __pyx_codeobj__31 = (PyObject*)__Pyx_PyCode_New(0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__30, __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__31)) __PYX_ERR(0, 107, __pyx_L1_error)

  __pyx_tuple__32 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__32);
  __Pyx_GIVEREF(__pyx_tuple__32);

  __pyx_tuple__33 = PyTuple_Pack(1, __pyx_int_12); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__33);
  __Pyx_GIVEREF(__pyx_tuple__33);

  __pyx_tuple__34 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__34);
  __Pyx_GIVEREF(__pyx_tuple__34);

  __pyx_tuple__35 = PyTuple_Pack(1, __pyx_int_3); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__35);
  __Pyx_GIVEREF(__pyx_tuple__35);

  __pyx_tuple__36 = 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__36)) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__36);
  __Pyx_GIVEREF(__pyx_tuple__36);
  __pyx_codeobj__37 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__36, __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__37)) __PYX_ERR(0, 124, __pyx_L1_error)

  __pyx_tuple__38 = PyTuple_Pack(2, __pyx_n_s_settingtype, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__38);
  __Pyx_GIVEREF(__pyx_tuple__38);
  __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __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__39)) __PYX_ERR(0, 129, __pyx_L1_error)

  __pyx_tuple__40 = 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__40)) __PYX_ERR(2, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__40);
  __Pyx_GIVEREF(__pyx_tuple__40);
  __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ACOS, 144, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(2, 144, __pyx_L1_error)

  __pyx_tuple__42 = 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__42)) __PYX_ERR(2, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__42);
  __Pyx_GIVEREF(__pyx_tuple__42);
  __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__42, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AD, 173, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(2, 173, __pyx_L1_error)

  __pyx_tuple__44 = 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__44)) __PYX_ERR(2, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__44);
  __Pyx_GIVEREF(__pyx_tuple__44);
  __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 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_ADD, 205, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(2, 205, __pyx_L1_error)

  __pyx_tuple__46 = 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__46)) __PYX_ERR(2, 236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__46);
  __Pyx_GIVEREF(__pyx_tuple__46);
  __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(6, 0, 14, 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_ADOSC, 236, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(2, 236, __pyx_L1_error)

  __pyx_tuple__48 = 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__48)) __PYX_ERR(2, 271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__48);
  __Pyx_GIVEREF(__pyx_tuple__48);
  __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(4, 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_ADX, 271, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(2, 271, __pyx_L1_error)

  __pyx_tuple__50 = 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__50)) __PYX_ERR(2, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__50);
  __Pyx_GIVEREF(__pyx_tuple__50);
  __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 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_ADXR, 304, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(2, 304, __pyx_L1_error)

  __pyx_tuple__52 = 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__52)) __PYX_ERR(2, 337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__52);
  __Pyx_GIVEREF(__pyx_tuple__52);
  __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_APO, 337, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(2, 337, __pyx_L1_error)

  __pyx_tuple__54 = 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__54)) __PYX_ERR(2, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__54);
  __Pyx_GIVEREF(__pyx_tuple__54);
  __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(3, 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_AROON, 370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(2, 370, __pyx_L1_error)

  __pyx_tuple__56 = 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__56)) __PYX_ERR(2, 405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__56);
  __Pyx_GIVEREF(__pyx_tuple__56);
  __pyx_codeobj__57 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__56, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AROONOSC, 405, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__57)) __PYX_ERR(2, 405, __pyx_L1_error)

  __pyx_tuple__58 = 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__58)) __PYX_ERR(2, 437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__58);
  __Pyx_GIVEREF(__pyx_tuple__58);
  __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__58, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ASIN, 437, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(2, 437, __pyx_L1_error)

  __pyx_tuple__60 = 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__60)) __PYX_ERR(2, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__60);
  __Pyx_GIVEREF(__pyx_tuple__60);
  __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ATAN, 466, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(2, 466, __pyx_L1_error)

  __pyx_tuple__62 = 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__62)) __PYX_ERR(2, 495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__62);
  __Pyx_GIVEREF(__pyx_tuple__62);
  __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__62, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ATR, 495, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(2, 495, __pyx_L1_error)

  __pyx_tuple__64 = PyTuple_Pack(12, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(2, 528, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__64);
  __Pyx_GIVEREF(__pyx_tuple__64);
  __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AVGPRICE, 528, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(2, 528, __pyx_L1_error)

  __pyx_tuple__66 = PyTuple_Pack(15, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_nbdevup, __pyx_n_s_nbdevdn, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outrealupperband, __pyx_n_s_outrealmiddleband, __pyx_n_s_outreallowerband); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(2, 560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__66);
  __Pyx_GIVEREF(__pyx_tuple__66);
  __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(5, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BBANDS, 560, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(2, 560, __pyx_L1_error)

  __pyx_tuple__68 = PyTuple_Pack(11, __pyx_n_s_real0, __pyx_n_s_real1, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(2, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__68);
  __Pyx_GIVEREF(__pyx_tuple__68);
  __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BETA, 600, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(2, 600, __pyx_L1_error)

  __pyx_tuple__70 = 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__70)) __PYX_ERR(2, 633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__70);
  __Pyx_GIVEREF(__pyx_tuple__70);
  __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 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_BOP, 633, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(2, 633, __pyx_L1_error)

  __pyx_tuple__72 = 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__72)) __PYX_ERR(2, 665, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__72);
  __Pyx_GIVEREF(__pyx_tuple__72);
  __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CCI, 665, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(2, 665, __pyx_L1_error)

  __pyx_tuple__74 = 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__74)) __PYX_ERR(2, 698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__74);
  __Pyx_GIVEREF(__pyx_tuple__74);
  __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL2CROWS, 698, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(2, 698, __pyx_L1_error)

  __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(2, 730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__76);
  __Pyx_GIVEREF(__pyx_tuple__76);
  __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(4, 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, 730, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(2, 730, __pyx_L1_error)

  __pyx_tuple__78 = 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__78)) __PYX_ERR(2, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__78);
  __Pyx_GIVEREF(__pyx_tuple__78);
  __pyx_codeobj__79 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__78, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3INSIDE, 762, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__79)) __PYX_ERR(2, 762, __pyx_L1_error)

  __pyx_tuple__80 = 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__80)) __PYX_ERR(2, 794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__80);
  __Pyx_GIVEREF(__pyx_tuple__80);
  __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3LINESTRIKE, 794, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(2, 794, __pyx_L1_error)

  __pyx_tuple__82 = 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__82)) __PYX_ERR(2, 826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__82);
  __Pyx_GIVEREF(__pyx_tuple__82);
  __pyx_codeobj__83 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__82, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3OUTSIDE, 826, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__83)) __PYX_ERR(2, 826, __pyx_L1_error)

  __pyx_tuple__84 = 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__84)) __PYX_ERR(2, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__84);
  __Pyx_GIVEREF(__pyx_tuple__84);
  __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 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_CDL3STARSINSOUTH, 858, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(2, 858, __pyx_L1_error)

  __pyx_tuple__86 = 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__86)) __PYX_ERR(2, 890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__86);
  __Pyx_GIVEREF(__pyx_tuple__86);
  __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__86, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3WHITESOLDIERS, 890, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(2, 890, __pyx_L1_error)

  __pyx_tuple__88 = 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__88)) __PYX_ERR(2, 922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__88);
  __Pyx_GIVEREF(__pyx_tuple__88);
  __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(5, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLABANDONEDBABY, 922, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(2, 922, __pyx_L1_error)

  __pyx_tuple__90 = 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__90)) __PYX_ERR(2, 956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__90);
  __Pyx_GIVEREF(__pyx_tuple__90);
  __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__90, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLADVANCEBLOCK, 956, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(2, 956, __pyx_L1_error)

  __pyx_tuple__92 = 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__92)) __PYX_ERR(2, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__92);
  __Pyx_GIVEREF(__pyx_tuple__92);
  __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__92, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLBELTHOLD, 988, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(2, 988, __pyx_L1_error)

  __pyx_tuple__94 = 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__94)) __PYX_ERR(2, 1020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__94);
  __Pyx_GIVEREF(__pyx_tuple__94);
  __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__94, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLBREAKAWAY, 1020, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) __PYX_ERR(2, 1020, __pyx_L1_error)

  __pyx_tuple__96 = 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__96)) __PYX_ERR(2, 1052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__96);
  __Pyx_GIVEREF(__pyx_tuple__96);
  __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__96, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCLOSINGMARUBOZU, 1052, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(2, 1052, __pyx_L1_error)

  __pyx_tuple__98 = 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__98)) __PYX_ERR(2, 1084, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__98);
  __Pyx_GIVEREF(__pyx_tuple__98);
  __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__98, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCONCEALBABYSWALL, 1084, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(2, 1084, __pyx_L1_error)

  __pyx_tuple__100 = 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__100)) __PYX_ERR(2, 1116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__100);
  __Pyx_GIVEREF(__pyx_tuple__100);
  __pyx_codeobj__101 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__100, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCOUNTERATTACK, 1116, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__101)) __PYX_ERR(2, 1116, __pyx_L1_error)

  __pyx_tuple__102 = 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__102)) __PYX_ERR(2, 1148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__102);
  __Pyx_GIVEREF(__pyx_tuple__102);
  __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(5, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__102, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDARKCLOUDCOVER, 1148, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(2, 1148, __pyx_L1_error)

  __pyx_tuple__104 = 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__104)) __PYX_ERR(2, 1182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__104);
  __Pyx_GIVEREF(__pyx_tuple__104);
  __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__104, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDOJI, 1182, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(2, 1182, __pyx_L1_error)

  __pyx_tuple__106 = 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__106)) __PYX_ERR(2, 1214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__106);
  __Pyx_GIVEREF(__pyx_tuple__106);
  __pyx_codeobj__107 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__106, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDOJISTAR, 1214, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__107)) __PYX_ERR(2, 1214, __pyx_L1_error)

  __pyx_tuple__108 = 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__108)) __PYX_ERR(2, 1246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__108);
  __Pyx_GIVEREF(__pyx_tuple__108);
  __pyx_codeobj__109 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDRAGONFLYDOJI, 1246, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__109)) __PYX_ERR(2, 1246, __pyx_L1_error)

  __pyx_tuple__110 = 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__110)) __PYX_ERR(2, 1278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__110);
  __Pyx_GIVEREF(__pyx_tuple__110);
  __pyx_codeobj__111 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLENGULFING, 1278, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__111)) __PYX_ERR(2, 1278, __pyx_L1_error)

  __pyx_tuple__112 = 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__112)) __PYX_ERR(2, 1310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__112);
  __Pyx_GIVEREF(__pyx_tuple__112);
  __pyx_codeobj__113 = (PyObject*)__Pyx_PyCode_New(5, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__112, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLEVENINGDOJISTAR, 1310, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__113)) __PYX_ERR(2, 1310, __pyx_L1_error)

  __pyx_tuple__114 = 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__114)) __PYX_ERR(2, 1344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__114);
  __Pyx_GIVEREF(__pyx_tuple__114);
  __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(5, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__114, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLEVENINGSTAR, 1344, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) __PYX_ERR(2, 1344, __pyx_L1_error)

  __pyx_tuple__116 = 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__116)) __PYX_ERR(2, 1378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__116);
  __Pyx_GIVEREF(__pyx_tuple__116);
  __pyx_codeobj__117 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__116, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLGAPSIDESIDEWHITE, 1378, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__117)) __PYX_ERR(2, 1378, __pyx_L1_error)

  __pyx_tuple__118 = 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__118)) __PYX_ERR(2, 1410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__118);
  __Pyx_GIVEREF(__pyx_tuple__118);
  __pyx_codeobj__119 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__118, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLGRAVESTONEDOJI, 1410, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__119)) __PYX_ERR(2, 1410, __pyx_L1_error)

  __pyx_tuple__120 = 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__120)) __PYX_ERR(2, 1442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__120);
  __Pyx_GIVEREF(__pyx_tuple__120);
  __pyx_codeobj__121 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__120, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHAMMER, 1442, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__121)) __PYX_ERR(2, 1442, __pyx_L1_error)

  __pyx_tuple__122 = 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__122)) __PYX_ERR(2, 1474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__122);
  __Pyx_GIVEREF(__pyx_tuple__122);
  __pyx_codeobj__123 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__122, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHANGINGMAN, 1474, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__123)) __PYX_ERR(2, 1474, __pyx_L1_error)

  __pyx_tuple__124 = 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__124)) __PYX_ERR(2, 1506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__124);
  __Pyx_GIVEREF(__pyx_tuple__124);
  __pyx_codeobj__125 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__124, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHARAMI, 1506, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__125)) __PYX_ERR(2, 1506, __pyx_L1_error)

  __pyx_tuple__126 = 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__126)) __PYX_ERR(2, 1538, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__126);
  __Pyx_GIVEREF(__pyx_tuple__126);
  __pyx_codeobj__127 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__126, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHARAMICROSS, 1538, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__127)) __PYX_ERR(2, 1538, __pyx_L1_error)

  __pyx_tuple__128 = 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__128)) __PYX_ERR(2, 1570, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__128);
  __Pyx_GIVEREF(__pyx_tuple__128);
  __pyx_codeobj__129 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__128, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIGHWAVE, 1570, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__129)) __PYX_ERR(2, 1570, __pyx_L1_error)

  __pyx_tuple__130 = 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__130)) __PYX_ERR(2, 1602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__130);
  __Pyx_GIVEREF(__pyx_tuple__130);
  __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__130, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIKKAKE, 1602, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(2, 1602, __pyx_L1_error)

  __pyx_tuple__132 = 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__132)) __PYX_ERR(2, 1634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__132);
  __Pyx_GIVEREF(__pyx_tuple__132);
  __pyx_codeobj__133 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__132, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIKKAKEMOD, 1634, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__133)) __PYX_ERR(2, 1634, __pyx_L1_error)

  __pyx_tuple__134 = 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__134)) __PYX_ERR(2, 1666, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__134);
  __Pyx_GIVEREF(__pyx_tuple__134);
  __pyx_codeobj__135 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__134, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHOMINGPIGEON, 1666, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__135)) __PYX_ERR(2, 1666, __pyx_L1_error)

  __pyx_tuple__136 = 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__136)) __PYX_ERR(2, 1698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__136);
  __Pyx_GIVEREF(__pyx_tuple__136);
  __pyx_codeobj__137 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLIDENTICAL3CROWS, 1698, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__137)) __PYX_ERR(2, 1698, __pyx_L1_error)

  __pyx_tuple__138 = 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__138)) __PYX_ERR(2, 1730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__138);
  __Pyx_GIVEREF(__pyx_tuple__138);
  __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLINNECK, 1730, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(2, 1730, __pyx_L1_error)

  __pyx_tuple__140 = 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__140)) __PYX_ERR(2, 1762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__140);
  __Pyx_GIVEREF(__pyx_tuple__140);
  __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__140, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLINVERTEDHAMMER, 1762, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(2, 1762, __pyx_L1_error)

  __pyx_tuple__142 = 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__142)) __PYX_ERR(2, 1794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__142);
  __Pyx_GIVEREF(__pyx_tuple__142);
  __pyx_codeobj__143 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__142, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLKICKING, 1794, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__143)) __PYX_ERR(2, 1794, __pyx_L1_error)

  __pyx_tuple__144 = 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__144)) __PYX_ERR(2, 1826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__144);
  __Pyx_GIVEREF(__pyx_tuple__144);
  __pyx_codeobj__145 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__144, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLKICKINGBYLENGTH, 1826, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__145)) __PYX_ERR(2, 1826, __pyx_L1_error)

  __pyx_tuple__146 = 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__146)) __PYX_ERR(2, 1858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__146);
  __Pyx_GIVEREF(__pyx_tuple__146);
  __pyx_codeobj__147 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__146, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLADDERBOTTOM, 1858, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__147)) __PYX_ERR(2, 1858, __pyx_L1_error)

  __pyx_tuple__148 = 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__148)) __PYX_ERR(2, 1890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__148);
  __Pyx_GIVEREF(__pyx_tuple__148);
  __pyx_codeobj__149 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__148, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLONGLEGGEDDOJI, 1890, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__149)) __PYX_ERR(2, 1890, __pyx_L1_error)

  __pyx_tuple__150 = 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__150)) __PYX_ERR(2, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__150);
  __Pyx_GIVEREF(__pyx_tuple__150);
  __pyx_codeobj__151 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__150, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLONGLINE, 1922, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__151)) __PYX_ERR(2, 1922, __pyx_L1_error)

  __pyx_tuple__152 = 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__152)) __PYX_ERR(2, 1954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__152);
  __Pyx_GIVEREF(__pyx_tuple__152);
  __pyx_codeobj__153 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 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_CDLMARUBOZU, 1954, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__153)) __PYX_ERR(2, 1954, __pyx_L1_error)

  __pyx_tuple__154 = 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__154)) __PYX_ERR(2, 1986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__154);
  __Pyx_GIVEREF(__pyx_tuple__154);
  __pyx_codeobj__155 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 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_CDLMATCHINGLOW, 1986, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__155)) __PYX_ERR(2, 1986, __pyx_L1_error)

  __pyx_tuple__156 = 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__156)) __PYX_ERR(2, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__156);
  __Pyx_GIVEREF(__pyx_tuple__156);
  __pyx_codeobj__157 = (PyObject*)__Pyx_PyCode_New(5, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__156, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMATHOLD, 2018, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__157)) __PYX_ERR(2, 2018, __pyx_L1_error)

  __pyx_tuple__158 = 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__158)) __PYX_ERR(2, 2052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__158);
  __Pyx_GIVEREF(__pyx_tuple__158);
  __pyx_codeobj__159 = (PyObject*)__Pyx_PyCode_New(5, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__158, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMORNINGDOJISTAR, 2052, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__159)) __PYX_ERR(2, 2052, __pyx_L1_error)

  __pyx_tuple__160 = 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__160)) __PYX_ERR(2, 2086, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__160);
  __Pyx_GIVEREF(__pyx_tuple__160);
  __pyx_codeobj__161 = (PyObject*)__Pyx_PyCode_New(5, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__160, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMORNINGSTAR, 2086, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__161)) __PYX_ERR(2, 2086, __pyx_L1_error)

  __pyx_tuple__162 = 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__162)) __PYX_ERR(2, 2120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__162);
  __Pyx_GIVEREF(__pyx_tuple__162);
  __pyx_codeobj__163 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__162, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLONNECK, 2120, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__163)) __PYX_ERR(2, 2120, __pyx_L1_error)

  __pyx_tuple__164 = 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__164)) __PYX_ERR(2, 2152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__164);
  __Pyx_GIVEREF(__pyx_tuple__164);
  __pyx_codeobj__165 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__164, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLPIERCING, 2152, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__165)) __PYX_ERR(2, 2152, __pyx_L1_error)

  __pyx_tuple__166 = 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__166)) __PYX_ERR(2, 2184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__166);
  __Pyx_GIVEREF(__pyx_tuple__166);
  __pyx_codeobj__167 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLRICKSHAWMAN, 2184, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__167)) __PYX_ERR(2, 2184, __pyx_L1_error)

  __pyx_tuple__168 = 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__168)) __PYX_ERR(2, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__168);
  __Pyx_GIVEREF(__pyx_tuple__168);
  __pyx_codeobj__169 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 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_CDLRISEFALL3METHODS, 2216, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__169)) __PYX_ERR(2, 2216, __pyx_L1_error)

  __pyx_tuple__170 = 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__170)) __PYX_ERR(2, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__170);
  __Pyx_GIVEREF(__pyx_tuple__170);
  __pyx_codeobj__171 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 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_CDLSEPARATINGLINES, 2248, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__171)) __PYX_ERR(2, 2248, __pyx_L1_error)

  __pyx_tuple__172 = 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__172)) __PYX_ERR(2, 2280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__172);
  __Pyx_GIVEREF(__pyx_tuple__172);
  __pyx_codeobj__173 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 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_CDLSHOOTINGSTAR, 2280, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__173)) __PYX_ERR(2, 2280, __pyx_L1_error)

  __pyx_tuple__174 = 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__174)) __PYX_ERR(2, 2312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__174);
  __Pyx_GIVEREF(__pyx_tuple__174);
  __pyx_codeobj__175 = (PyObject*)__Pyx_PyCode_New(4, 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_CDLSHORTLINE, 2312, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__175)) __PYX_ERR(2, 2312, __pyx_L1_error)

  __pyx_tuple__176 = 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__176)) __PYX_ERR(2, 2344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__176);
  __Pyx_GIVEREF(__pyx_tuple__176);
  __pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(4, 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_CDLSPINNINGTOP, 2344, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) __PYX_ERR(2, 2344, __pyx_L1_error)

  __pyx_tuple__178 = 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__178)) __PYX_ERR(2, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__178);
  __Pyx_GIVEREF(__pyx_tuple__178);
  __pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 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_CDLSTALLEDPATTERN, 2376, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__179)) __PYX_ERR(2, 2376, __pyx_L1_error)

  __pyx_tuple__180 = 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__180)) __PYX_ERR(2, 2408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__180);
  __Pyx_GIVEREF(__pyx_tuple__180);
  __pyx_codeobj__181 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__180, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSTICKSANDWICH, 2408, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__181)) __PYX_ERR(2, 2408, __pyx_L1_error)

  __pyx_tuple__182 = 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__182)) __PYX_ERR(2, 2440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__182);
  __Pyx_GIVEREF(__pyx_tuple__182);
  __pyx_codeobj__183 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__182, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTAKURI, 2440, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__183)) __PYX_ERR(2, 2440, __pyx_L1_error)

  __pyx_tuple__184 = 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__184)) __PYX_ERR(2, 2472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__184);
  __Pyx_GIVEREF(__pyx_tuple__184);
  __pyx_codeobj__185 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__184, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTASUKIGAP, 2472, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__185)) __PYX_ERR(2, 2472, __pyx_L1_error)

  __pyx_tuple__186 = 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__186)) __PYX_ERR(2, 2504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__186);
  __Pyx_GIVEREF(__pyx_tuple__186);
  __pyx_codeobj__187 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__186, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTHRUSTING, 2504, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__187)) __PYX_ERR(2, 2504, __pyx_L1_error)

  __pyx_tuple__188 = 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__188)) __PYX_ERR(2, 2536, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__188);
  __Pyx_GIVEREF(__pyx_tuple__188);
  __pyx_codeobj__189 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__188, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTRISTAR, 2536, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__189)) __PYX_ERR(2, 2536, __pyx_L1_error)

  __pyx_tuple__190 = 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__190)) __PYX_ERR(2, 2568, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__190);
  __Pyx_GIVEREF(__pyx_tuple__190);
  __pyx_codeobj__191 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__190, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLUNIQUE3RIVER, 2568, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__191)) __PYX_ERR(2, 2568, __pyx_L1_error)

  __pyx_tuple__192 = 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__192)) __PYX_ERR(2, 2600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__192);
  __Pyx_GIVEREF(__pyx_tuple__192);
  __pyx_codeobj__193 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__192, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLUPSIDEGAP2CROWS, 2600, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__193)) __PYX_ERR(2, 2600, __pyx_L1_error)

  __pyx_tuple__194 = 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__194)) __PYX_ERR(2, 2632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__194);
  __Pyx_GIVEREF(__pyx_tuple__194);
  __pyx_codeobj__195 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__194, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLXSIDEGAP3METHODS, 2632, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__195)) __PYX_ERR(2, 2632, __pyx_L1_error)

  __pyx_tuple__196 = 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__196)) __PYX_ERR(2, 2664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__196);
  __Pyx_GIVEREF(__pyx_tuple__196);
  __pyx_codeobj__197 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__196, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CEIL, 2664, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__197)) __PYX_ERR(2, 2664, __pyx_L1_error)

  __pyx_tuple__198 = 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__198)) __PYX_ERR(2, 2693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__198);
  __Pyx_GIVEREF(__pyx_tuple__198);
  __pyx_codeobj__199 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__198, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CMO, 2693, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__199)) __PYX_ERR(2, 2693, __pyx_L1_error)

  __pyx_tuple__200 = 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__200)) __PYX_ERR(2, 2724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__200);
  __Pyx_GIVEREF(__pyx_tuple__200);
  __pyx_codeobj__201 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 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_CORREL, 2724, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) __PYX_ERR(2, 2724, __pyx_L1_error)

  __pyx_tuple__202 = 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__202)) __PYX_ERR(2, 2757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__202);
  __Pyx_GIVEREF(__pyx_tuple__202);
  __pyx_codeobj__203 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__202, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_COS, 2757, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__203)) __PYX_ERR(2, 2757, __pyx_L1_error)

  __pyx_tuple__204 = 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__204)) __PYX_ERR(2, 2786, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__204);
  __Pyx_GIVEREF(__pyx_tuple__204);
  __pyx_codeobj__205 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__204, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_COSH, 2786, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__205)) __PYX_ERR(2, 2786, __pyx_L1_error)

  __pyx_tuple__206 = 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__206)) __PYX_ERR(2, 2815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__206);
  __Pyx_GIVEREF(__pyx_tuple__206);
  __pyx_codeobj__207 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__206, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DEMA, 2815, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__207)) __PYX_ERR(2, 2815, __pyx_L1_error)

  __pyx_tuple__208 = 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__208)) __PYX_ERR(2, 2846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__208);
  __Pyx_GIVEREF(__pyx_tuple__208);
  __pyx_codeobj__209 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__208, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DIV, 2846, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__209)) __PYX_ERR(2, 2846, __pyx_L1_error)

  __pyx_tuple__210 = 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__210)) __PYX_ERR(2, 2877, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__210);
  __Pyx_GIVEREF(__pyx_tuple__210);
  __pyx_codeobj__211 = (PyObject*)__Pyx_PyCode_New(4, 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_DX, 2877, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__211)) __PYX_ERR(2, 2877, __pyx_L1_error)

  __pyx_tuple__212 = 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__212)) __PYX_ERR(2, 2910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__212);
  __Pyx_GIVEREF(__pyx_tuple__212);
  __pyx_codeobj__213 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 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_EMA, 2910, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__213)) __PYX_ERR(2, 2910, __pyx_L1_error)

  __pyx_tuple__214 = 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__214)) __PYX_ERR(2, 2941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__214);
  __Pyx_GIVEREF(__pyx_tuple__214);
  __pyx_codeobj__215 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__214, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_EXP, 2941, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__215)) __PYX_ERR(2, 2941, __pyx_L1_error)

  __pyx_tuple__216 = 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__216)) __PYX_ERR(2, 2970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__216);
  __Pyx_GIVEREF(__pyx_tuple__216);
  __pyx_codeobj__217 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__216, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_FLOOR, 2970, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__217)) __PYX_ERR(2, 2970, __pyx_L1_error)

  __pyx_tuple__218 = 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__218)) __PYX_ERR(2, 2999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__218);
  __Pyx_GIVEREF(__pyx_tuple__218);
  __pyx_codeobj__219 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 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_HT_DCPERIOD, 2999, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__219)) __PYX_ERR(2, 2999, __pyx_L1_error)

  __pyx_tuple__220 = 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__220)) __PYX_ERR(2, 3028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__220);
  __Pyx_GIVEREF(__pyx_tuple__220);
  __pyx_codeobj__221 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 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_HT_DCPHASE, 3028, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__221)) __PYX_ERR(2, 3028, __pyx_L1_error)

  __pyx_tuple__222 = 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__222)) __PYX_ERR(2, 3057, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__222);
  __Pyx_GIVEREF(__pyx_tuple__222);
  __pyx_codeobj__223 = (PyObject*)__Pyx_PyCode_New(1, 0, 10, 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_HT_PHASOR, 3057, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__223)) __PYX_ERR(2, 3057, __pyx_L1_error)

  __pyx_tuple__224 = 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__224)) __PYX_ERR(2, 3089, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__224);
  __Pyx_GIVEREF(__pyx_tuple__224);
  __pyx_codeobj__225 = (PyObject*)__Pyx_PyCode_New(1, 0, 10, 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_HT_SINE, 3089, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__225)) __PYX_ERR(2, 3089, __pyx_L1_error)

  __pyx_tuple__226 = 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__226)) __PYX_ERR(2, 3121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__226);
  __Pyx_GIVEREF(__pyx_tuple__226);
  __pyx_codeobj__227 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__226, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_TRENDLINE, 3121, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__227)) __PYX_ERR(2, 3121, __pyx_L1_error)

  __pyx_tuple__228 = 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__228)) __PYX_ERR(2, 3150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__228);
  __Pyx_GIVEREF(__pyx_tuple__228);
  __pyx_codeobj__229 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 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_HT_TRENDMODE, 3150, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__229)) __PYX_ERR(2, 3150, __pyx_L1_error)

  __pyx_tuple__230 = 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__230)) __PYX_ERR(2, 3179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__230);
  __Pyx_GIVEREF(__pyx_tuple__230);
  __pyx_codeobj__231 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__230, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_KAMA, 3179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__231)) __PYX_ERR(2, 3179, __pyx_L1_error)

  __pyx_tuple__232 = 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__232)) __PYX_ERR(2, 3210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__232);
  __Pyx_GIVEREF(__pyx_tuple__232);
  __pyx_codeobj__233 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__232, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG, 3210, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__233)) __PYX_ERR(2, 3210, __pyx_L1_error)

  __pyx_tuple__234 = 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__234)) __PYX_ERR(2, 3241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__234);
  __Pyx_GIVEREF(__pyx_tuple__234);
  __pyx_codeobj__235 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__234, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_ANGLE, 3241, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__235)) __PYX_ERR(2, 3241, __pyx_L1_error)

  __pyx_tuple__236 = 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__236)) __PYX_ERR(2, 3272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__236);
  __Pyx_GIVEREF(__pyx_tuple__236);
  __pyx_codeobj__237 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__236, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_INTERCEPT, 3272, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(2, 3272, __pyx_L1_error)

  __pyx_tuple__238 = 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__238)) __PYX_ERR(2, 3303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__238);
  __Pyx_GIVEREF(__pyx_tuple__238);
  __pyx_codeobj__239 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__238, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_SLOPE, 3303, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__239)) __PYX_ERR(2, 3303, __pyx_L1_error)

  __pyx_tuple__240 = 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__240)) __PYX_ERR(2, 3334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__240);
  __Pyx_GIVEREF(__pyx_tuple__240);
  __pyx_codeobj__241 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__240, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LN, 3334, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__241)) __PYX_ERR(2, 3334, __pyx_L1_error)

  __pyx_tuple__242 = 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__242)) __PYX_ERR(2, 3363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__242);
  __Pyx_GIVEREF(__pyx_tuple__242);
  __pyx_codeobj__243 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__242, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LOG10, 3363, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__243)) __PYX_ERR(2, 3363, __pyx_L1_error)

  __pyx_tuple__244 = 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__244)) __PYX_ERR(2, 3392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__244);
  __Pyx_GIVEREF(__pyx_tuple__244);
  __pyx_codeobj__245 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__244, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MA, 3392, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__245)) __PYX_ERR(2, 3392, __pyx_L1_error)

  __pyx_tuple__246 = 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__246)) __PYX_ERR(2, 3424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__246);
  __Pyx_GIVEREF(__pyx_tuple__246);
  __pyx_codeobj__247 = (PyObject*)__Pyx_PyCode_New(4, 0, 14, 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__func_pxi, __pyx_n_s_MACD, 3424, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__247)) __PYX_ERR(2, 3424, __pyx_L1_error)

  __pyx_tuple__248 = 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__248)) __PYX_ERR(2, 3463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__248);
  __Pyx_GIVEREF(__pyx_tuple__248);
  __pyx_codeobj__249 = (PyObject*)__Pyx_PyCode_New(7, 0, 17, 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__func_pxi, __pyx_n_s_MACDEXT, 3463, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__249)) __PYX_ERR(2, 3463, __pyx_L1_error)

  __pyx_tuple__250 = 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__250)) __PYX_ERR(2, 3505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__250);
  __Pyx_GIVEREF(__pyx_tuple__250);
  __pyx_codeobj__251 = (PyObject*)__Pyx_PyCode_New(2, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__250, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACDFIX, 3505, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__251)) __PYX_ERR(2, 3505, __pyx_L1_error)

  __pyx_tuple__252 = 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__252)) __PYX_ERR(2, 3542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__252);
  __Pyx_GIVEREF(__pyx_tuple__252);
  __pyx_codeobj__253 = (PyObject*)__Pyx_PyCode_New(3, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__252, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAMA, 3542, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__253)) __PYX_ERR(2, 3542, __pyx_L1_error)

  __pyx_tuple__254 = 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__254)) __PYX_ERR(2, 3577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__254);
  __Pyx_GIVEREF(__pyx_tuple__254);
  __pyx_codeobj__255 = (PyObject*)__Pyx_PyCode_New(5, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__254, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAVP, 3577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__255)) __PYX_ERR(2, 3577, __pyx_L1_error)

  __pyx_tuple__256 = 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__256)) __PYX_ERR(2, 3612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__256);
  __Pyx_GIVEREF(__pyx_tuple__256);
  __pyx_codeobj__257 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 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__func_pxi, __pyx_n_s_MAX, 3612, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__257)) __PYX_ERR(2, 3612, __pyx_L1_error)

  __pyx_tuple__258 = 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__258)) __PYX_ERR(2, 3643, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__258);
  __Pyx_GIVEREF(__pyx_tuple__258);
  __pyx_codeobj__259 = (PyObject*)__Pyx_PyCode_New(2, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__258, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAXINDEX, 3643, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__259)) __PYX_ERR(2, 3643, __pyx_L1_error)

  __pyx_tuple__260 = 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__260)) __PYX_ERR(2, 3677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__260);
  __Pyx_GIVEREF(__pyx_tuple__260);
  __pyx_codeobj__261 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__260, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MEDPRICE, 3677, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__261)) __PYX_ERR(2, 3677, __pyx_L1_error)

  __pyx_tuple__262 = 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__262)) __PYX_ERR(2, 3707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__262);
  __Pyx_GIVEREF(__pyx_tuple__262);
  __pyx_codeobj__263 = (PyObject*)__Pyx_PyCode_New(5, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__262, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MFI, 3707, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__263)) __PYX_ERR(2, 3707, __pyx_L1_error)

  __pyx_tuple__264 = 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__264)) __PYX_ERR(2, 3741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__264);
  __Pyx_GIVEREF(__pyx_tuple__264);
  __pyx_codeobj__265 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__264, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIDPOINT, 3741, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__265)) __PYX_ERR(2, 3741, __pyx_L1_error)

  __pyx_tuple__266 = 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__266)) __PYX_ERR(2, 3772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__266);
  __Pyx_GIVEREF(__pyx_tuple__266);
  __pyx_codeobj__267 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__266, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIDPRICE, 3772, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__267)) __PYX_ERR(2, 3772, __pyx_L1_error)

  __pyx_tuple__268 = 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__268)) __PYX_ERR(2, 3804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__268);
  __Pyx_GIVEREF(__pyx_tuple__268);
  __pyx_codeobj__269 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__268, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIN, 3804, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__269)) __PYX_ERR(2, 3804, __pyx_L1_error)

  __pyx_tuple__270 = 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__270)) __PYX_ERR(2, 3835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__270);
  __Pyx_GIVEREF(__pyx_tuple__270);
  __pyx_codeobj__271 = (PyObject*)__Pyx_PyCode_New(2, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__270, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MININDEX, 3835, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__271)) __PYX_ERR(2, 3835, __pyx_L1_error)

  __pyx_tuple__272 = 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__272)) __PYX_ERR(2, 3869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__272);
  __Pyx_GIVEREF(__pyx_tuple__272);
  __pyx_codeobj__273 = (PyObject*)__Pyx_PyCode_New(2, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__272, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINMAX, 3869, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__273)) __PYX_ERR(2, 3869, __pyx_L1_error)

  __pyx_tuple__274 = 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__274)) __PYX_ERR(2, 3903, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__274);
  __Pyx_GIVEREF(__pyx_tuple__274);
  __pyx_codeobj__275 = (PyObject*)__Pyx_PyCode_New(2, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__274, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINMAXINDEX, 3903, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__275)) __PYX_ERR(2, 3903, __pyx_L1_error)

  __pyx_tuple__276 = 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__276)) __PYX_ERR(2, 3943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__276);
  __Pyx_GIVEREF(__pyx_tuple__276);
  __pyx_codeobj__277 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 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__func_pxi, __pyx_n_s_MINUS_DI, 3943, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__277)) __PYX_ERR(2, 3943, __pyx_L1_error)

  __pyx_tuple__278 = 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__278)) __PYX_ERR(2, 3976, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__278);
  __Pyx_GIVEREF(__pyx_tuple__278);
  __pyx_codeobj__279 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 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__func_pxi, __pyx_n_s_MINUS_DM, 3976, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__279)) __PYX_ERR(2, 3976, __pyx_L1_error)

  __pyx_tuple__280 = 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__280)) __PYX_ERR(2, 4008, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__280);
  __Pyx_GIVEREF(__pyx_tuple__280);
  __pyx_codeobj__281 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 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__func_pxi, __pyx_n_s_MOM, 4008, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__281)) __PYX_ERR(2, 4008, __pyx_L1_error)

  __pyx_tuple__282 = 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__282)) __PYX_ERR(2, 4039, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__282);
  __Pyx_GIVEREF(__pyx_tuple__282);
  __pyx_codeobj__283 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 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__func_pxi, __pyx_n_s_MULT, 4039, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__283)) __PYX_ERR(2, 4039, __pyx_L1_error)

  __pyx_tuple__284 = 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__284)) __PYX_ERR(2, 4070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__284);
  __Pyx_GIVEREF(__pyx_tuple__284);
  __pyx_codeobj__285 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__284, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_NATR, 4070, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__285)) __PYX_ERR(2, 4070, __pyx_L1_error)

  __pyx_tuple__286 = 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__286)) __PYX_ERR(2, 4103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__286);
  __Pyx_GIVEREF(__pyx_tuple__286);
  __pyx_codeobj__287 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 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__func_pxi, __pyx_n_s_OBV, 4103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__287)) __PYX_ERR(2, 4103, __pyx_L1_error)

  __pyx_tuple__288 = 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__288)) __PYX_ERR(2, 4134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__288);
  __Pyx_GIVEREF(__pyx_tuple__288);
  __pyx_codeobj__289 = (PyObject*)__Pyx_PyCode_New(4, 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__func_pxi, __pyx_n_s_PLUS_DI, 4134, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__289)) __PYX_ERR(2, 4134, __pyx_L1_error)

  __pyx_tuple__290 = 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__290)) __PYX_ERR(2, 4167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__290);
  __Pyx_GIVEREF(__pyx_tuple__290);
  __pyx_codeobj__291 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 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__func_pxi, __pyx_n_s_PLUS_DM, 4167, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__291)) __PYX_ERR(2, 4167, __pyx_L1_error)

  __pyx_tuple__292 = 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__292)) __PYX_ERR(2, 4199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__292);
  __Pyx_GIVEREF(__pyx_tuple__292);
  __pyx_codeobj__293 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 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__func_pxi, __pyx_n_s_PPO, 4199, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__293)) __PYX_ERR(2, 4199, __pyx_L1_error)

  __pyx_tuple__294 = 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__294)) __PYX_ERR(2, 4232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__294);
  __Pyx_GIVEREF(__pyx_tuple__294);
  __pyx_codeobj__295 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__294, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROC, 4232, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__295)) __PYX_ERR(2, 4232, __pyx_L1_error)

  __pyx_tuple__296 = 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__296)) __PYX_ERR(2, 4263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__296);
  __Pyx_GIVEREF(__pyx_tuple__296);
  __pyx_codeobj__297 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__296, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCP, 4263, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__297)) __PYX_ERR(2, 4263, __pyx_L1_error)

  __pyx_tuple__298 = 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__298)) __PYX_ERR(2, 4294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__298);
  __Pyx_GIVEREF(__pyx_tuple__298);
  __pyx_codeobj__299 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__298, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCR, 4294, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__299)) __PYX_ERR(2, 4294, __pyx_L1_error)

  __pyx_tuple__300 = 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__300)) __PYX_ERR(2, 4325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__300);
  __Pyx_GIVEREF(__pyx_tuple__300);
  __pyx_codeobj__301 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__300, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCR100, 4325, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__301)) __PYX_ERR(2, 4325, __pyx_L1_error)

  __pyx_tuple__302 = 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__302)) __PYX_ERR(2, 4356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__302);
  __Pyx_GIVEREF(__pyx_tuple__302);
  __pyx_codeobj__303 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__302, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_RSI, 4356, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__303)) __PYX_ERR(2, 4356, __pyx_L1_error)

  __pyx_tuple__304 = 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__304)) __PYX_ERR(2, 4387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__304);
  __Pyx_GIVEREF(__pyx_tuple__304);
  __pyx_codeobj__305 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__304, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SAR, 4387, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__305)) __PYX_ERR(2, 4387, __pyx_L1_error)

  __pyx_tuple__306 = 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__306)) __PYX_ERR(2, 4420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__306);
  __Pyx_GIVEREF(__pyx_tuple__306);
  __pyx_codeobj__307 = (PyObject*)__Pyx_PyCode_New(10, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__306, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SAREXT, 4420, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__307)) __PYX_ERR(2, 4420, __pyx_L1_error)

  __pyx_tuple__308 = 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__308)) __PYX_ERR(2, 4459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__308);
  __Pyx_GIVEREF(__pyx_tuple__308);
  __pyx_codeobj__309 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__308, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SIN, 4459, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__309)) __PYX_ERR(2, 4459, __pyx_L1_error)

  __pyx_tuple__310 = 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__310)) __PYX_ERR(2, 4488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__310);
  __Pyx_GIVEREF(__pyx_tuple__310);
  __pyx_codeobj__311 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 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__func_pxi, __pyx_n_s_SINH, 4488, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__311)) __PYX_ERR(2, 4488, __pyx_L1_error)

  __pyx_tuple__312 = 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__312)) __PYX_ERR(2, 4517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__312);
  __Pyx_GIVEREF(__pyx_tuple__312);
  __pyx_codeobj__313 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 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__func_pxi, __pyx_n_s_SMA, 4517, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__313)) __PYX_ERR(2, 4517, __pyx_L1_error)

  __pyx_tuple__314 = 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__314)) __PYX_ERR(2, 4548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__314);
  __Pyx_GIVEREF(__pyx_tuple__314);
  __pyx_codeobj__315 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 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__func_pxi, __pyx_n_s_SQRT, 4548, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__315)) __PYX_ERR(2, 4548, __pyx_L1_error)

  __pyx_tuple__316 = 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__316)) __PYX_ERR(2, 4577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__316);
  __Pyx_GIVEREF(__pyx_tuple__316);
  __pyx_codeobj__317 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 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__func_pxi, __pyx_n_s_STDDEV, 4577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__317)) __PYX_ERR(2, 4577, __pyx_L1_error)

  __pyx_tuple__318 = 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__318)) __PYX_ERR(2, 4609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__318);
  __Pyx_GIVEREF(__pyx_tuple__318);
  __pyx_codeobj__319 = (PyObject*)__Pyx_PyCode_New(8, 0, 17, 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__func_pxi, __pyx_n_s_STOCH, 4609, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__319)) __PYX_ERR(2, 4609, __pyx_L1_error)

  __pyx_tuple__320 = 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__320)) __PYX_ERR(2, 4649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__320);
  __Pyx_GIVEREF(__pyx_tuple__320);
  __pyx_codeobj__321 = (PyObject*)__Pyx_PyCode_New(6, 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__func_pxi, __pyx_n_s_STOCHF, 4649, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__321)) __PYX_ERR(2, 4649, __pyx_L1_error)

  __pyx_tuple__322 = 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__322)) __PYX_ERR(2, 4687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__322);
  __Pyx_GIVEREF(__pyx_tuple__322);
  __pyx_codeobj__323 = (PyObject*)__Pyx_PyCode_New(5, 0, 14, 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__func_pxi, __pyx_n_s_STOCHRSI, 4687, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__323)) __PYX_ERR(2, 4687, __pyx_L1_error)

  __pyx_tuple__324 = 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__324)) __PYX_ERR(2, 4724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__324);
  __Pyx_GIVEREF(__pyx_tuple__324);
  __pyx_codeobj__325 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__324, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SUB, 4724, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__325)) __PYX_ERR(2, 4724, __pyx_L1_error)

  __pyx_tuple__326 = 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__326)) __PYX_ERR(2, 4755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__326);
  __Pyx_GIVEREF(__pyx_tuple__326);
  __pyx_codeobj__327 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__326, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SUM, 4755, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__327)) __PYX_ERR(2, 4755, __pyx_L1_error)

  __pyx_tuple__328 = 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__328)) __PYX_ERR(2, 4786, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__328);
  __Pyx_GIVEREF(__pyx_tuple__328);
  __pyx_codeobj__329 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__328, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_T3, 4786, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__329)) __PYX_ERR(2, 4786, __pyx_L1_error)

  __pyx_tuple__330 = 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__330)) __PYX_ERR(2, 4818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__330);
  __Pyx_GIVEREF(__pyx_tuple__330);
  __pyx_codeobj__331 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__330, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TAN, 4818, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__331)) __PYX_ERR(2, 4818, __pyx_L1_error)

  __pyx_tuple__332 = 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__332)) __PYX_ERR(2, 4847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__332);
  __Pyx_GIVEREF(__pyx_tuple__332);
  __pyx_codeobj__333 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__332, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TANH, 4847, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__333)) __PYX_ERR(2, 4847, __pyx_L1_error)

  __pyx_tuple__334 = 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__334)) __PYX_ERR(2, 4876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__334);
  __Pyx_GIVEREF(__pyx_tuple__334);
  __pyx_codeobj__335 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 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__func_pxi, __pyx_n_s_TEMA, 4876, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__335)) __PYX_ERR(2, 4876, __pyx_L1_error)

  __pyx_tuple__336 = 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__336)) __PYX_ERR(2, 4907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__336);
  __Pyx_GIVEREF(__pyx_tuple__336);
  __pyx_codeobj__337 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 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__func_pxi, __pyx_n_s_TRANGE, 4907, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__337)) __PYX_ERR(2, 4907, __pyx_L1_error)

  __pyx_tuple__338 = 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__338)) __PYX_ERR(2, 4938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__338);
  __Pyx_GIVEREF(__pyx_tuple__338);
  __pyx_codeobj__339 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 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__func_pxi, __pyx_n_s_TRIMA, 4938, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__339)) __PYX_ERR(2, 4938, __pyx_L1_error)

  __pyx_tuple__340 = 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__340)) __PYX_ERR(2, 4969, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__340);
  __Pyx_GIVEREF(__pyx_tuple__340);
  __pyx_codeobj__341 = (PyObject*)__Pyx_PyCode_New(2, 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__func_pxi, __pyx_n_s_TRIX, 4969, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__341)) __PYX_ERR(2, 4969, __pyx_L1_error)

  __pyx_tuple__342 = 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__342)) __PYX_ERR(2, 5000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__342);
  __Pyx_GIVEREF(__pyx_tuple__342);
  __pyx_codeobj__343 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__342, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TSF, 5000, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__343)) __PYX_ERR(2, 5000, __pyx_L1_error)

  __pyx_tuple__344 = 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__344)) __PYX_ERR(2, 5031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__344);
  __Pyx_GIVEREF(__pyx_tuple__344);
  __pyx_codeobj__345 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 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__func_pxi, __pyx_n_s_TYPPRICE, 5031, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__345)) __PYX_ERR(2, 5031, __pyx_L1_error)

  __pyx_tuple__346 = 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__346)) __PYX_ERR(2, 5062, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__346);
  __Pyx_GIVEREF(__pyx_tuple__346);
  __pyx_codeobj__347 = (PyObject*)__Pyx_PyCode_New(6, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__346, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ULTOSC, 5062, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__347)) __PYX_ERR(2, 5062, __pyx_L1_error)

  __pyx_tuple__348 = 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__348)) __PYX_ERR(2, 5097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__348);
  __Pyx_GIVEREF(__pyx_tuple__348);
  __pyx_codeobj__349 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__348, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_VAR, 5097, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__349)) __PYX_ERR(2, 5097, __pyx_L1_error)

  __pyx_tuple__350 = 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__350)) __PYX_ERR(2, 5129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__350);
  __Pyx_GIVEREF(__pyx_tuple__350);
  __pyx_codeobj__351 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__350, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WCLPRICE, 5129, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__351)) __PYX_ERR(2, 5129, __pyx_L1_error)

  __pyx_tuple__352 = 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__352)) __PYX_ERR(2, 5160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__352);
  __Pyx_GIVEREF(__pyx_tuple__352);
  __pyx_codeobj__353 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 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__func_pxi, __pyx_n_s_WILLR, 5160, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__353)) __PYX_ERR(2, 5160, __pyx_L1_error)

  __pyx_tuple__354 = 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__354)) __PYX_ERR(2, 5193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__354);
  __Pyx_GIVEREF(__pyx_tuple__354);
  __pyx_codeobj__355 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__354, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WMA, 5193, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__355)) __PYX_ERR(2, 5193, __pyx_L1_error)

  __pyx_tuple__356 = PyTuple_Pack(1, __pyx_n_s_s); if (unlikely(!__pyx_tuple__356)) __PYX_ERR(1, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__356);
  __Pyx_GIVEREF(__pyx_tuple__356);
  __pyx_codeobj__357 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__356, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str2bytes, 56, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__357)) __PYX_ERR(1, 56, __pyx_L1_error)

  __pyx_tuple__358 = PyTuple_Pack(1, __pyx_n_s_b); if (unlikely(!__pyx_tuple__358)) __PYX_ERR(1, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__358);
  __Pyx_GIVEREF(__pyx_tuple__358);
  __pyx_codeobj__359 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__358, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_bytes2str, 59, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__359)) __PYX_ERR(1, 59, __pyx_L1_error)

  __pyx_tuple__360 = PyTuple_Pack(1, __pyx_n_s_s); if (unlikely(!__pyx_tuple__360)) __PYX_ERR(1, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__360);
  __Pyx_GIVEREF(__pyx_tuple__360);
  __pyx_codeobj__361 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__360, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str2bytes, 64, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__361)) __PYX_ERR(1, 64, __pyx_L1_error)

  __pyx_tuple__362 = PyTuple_Pack(1, __pyx_n_s_b); if (unlikely(!__pyx_tuple__362)) __PYX_ERR(1, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__362);
  __Pyx_GIVEREF(__pyx_tuple__362);
  __pyx_codeobj__363 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__362, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_bytes2str, 67, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__363)) __PYX_ERR(1, 67, __pyx_L1_error)

  __pyx_tuple__364 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__364)) __PYX_ERR(1, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__364);
  __Pyx_GIVEREF(__pyx_tuple__364);

  __pyx_tuple__365 = 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__365)) __PYX_ERR(1, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__365);
  __Pyx_GIVEREF(__pyx_tuple__365);
  __pyx_codeobj__366 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__365, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_init, 99, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__366)) __PYX_ERR(1, 99, __pyx_L1_error)

  __pyx_tuple__367 = PyTuple_Pack(6, __pyx_n_s_self, __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__367)) __PYX_ERR(1, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__367);
  __Pyx_GIVEREF(__pyx_tuple__367);
  __pyx_codeobj__368 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__367, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_initialize_function_info, 118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__368)) __PYX_ERR(1, 118, __pyx_L1_error)

  __pyx_tuple__369 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__369)) __PYX_ERR(1, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__369);
  __Pyx_GIVEREF(__pyx_tuple__369);
  __pyx_codeobj__370 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__369, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_info, 148, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__370)) __PYX_ERR(1, 148, __pyx_L1_error)

  __pyx_tuple__371 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__371)) __PYX_ERR(1, 155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__371);
  __Pyx_GIVEREF(__pyx_tuple__371);
  __pyx_codeobj__372 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__371, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_function_flags, 155, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__372)) __PYX_ERR(1, 155, __pyx_L1_error)

  __pyx_tuple__373 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__373)) __PYX_ERR(1, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__373);
  __Pyx_GIVEREF(__pyx_tuple__373);
  __pyx_codeobj__374 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__373, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_output_flags, 162, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__374)) __PYX_ERR(1, 162, __pyx_L1_error)

  __pyx_tuple__375 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_ret, __pyx_n_s_input_name); if (unlikely(!__pyx_tuple__375)) __PYX_ERR(1, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__375);
  __Pyx_GIVEREF(__pyx_tuple__375);
  __pyx_codeobj__376 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__375, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_input_names, 168, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__376)) __PYX_ERR(1, 168, __pyx_L1_error)

  __pyx_tuple__377 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_input_names, __pyx_n_s_input_name, __pyx_n_s_price_series); if (unlikely(!__pyx_tuple__377)) __PYX_ERR(1, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__377);
  __Pyx_GIVEREF(__pyx_tuple__377);
  __pyx_codeobj__378 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__377, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_input_names, 178, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__378)) __PYX_ERR(1, 178, __pyx_L1_error)

  __pyx_tuple__379 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__379)) __PYX_ERR(1, 189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__379);
  __Pyx_GIVEREF(__pyx_tuple__379);
  __pyx_codeobj__380 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__379, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_input_arrays, 189, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__380)) __PYX_ERR(1, 189, __pyx_L1_error)

  __pyx_tuple__381 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_input_arrays, __pyx_n_s_missing_keys, __pyx_n_s_key, __pyx_n_s_missing); if (unlikely(!__pyx_tuple__381)) __PYX_ERR(1, 199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__381);
  __Pyx_GIVEREF(__pyx_tuple__381);
  __pyx_codeobj__382 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__381, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_input_arrays, 199, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__382)) __PYX_ERR(1, 199, __pyx_L1_error)

  __pyx_tuple__383 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_ret, __pyx_n_s_opt_input); if (unlikely(!__pyx_tuple__383)) __PYX_ERR(1, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__383);
  __Pyx_GIVEREF(__pyx_tuple__383);
  __pyx_codeobj__384 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__383, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_parameters, 247, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__384)) __PYX_ERR(1, 247, __pyx_L1_error)

  __pyx_tuple__385 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_parameters, __pyx_n_s_kwargs, __pyx_n_s_param, __pyx_n_s_value); if (unlikely(!__pyx_tuple__385)) __PYX_ERR(1, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__385);
  __Pyx_GIVEREF(__pyx_tuple__385);
  __pyx_codeobj__386 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__385, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_parameters, 256, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__386)) __PYX_ERR(1, 256, __pyx_L1_error)
  __pyx_tuple__387 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__387)) __PYX_ERR(1, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__387);
  __Pyx_GIVEREF(__pyx_tuple__387);

  __pyx_tuple__388 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_args, __pyx_n_s_kwargs, __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__388)) __PYX_ERR(1, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__388);
  __Pyx_GIVEREF(__pyx_tuple__388);
  __pyx_codeobj__389 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__388, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_function_args, 270, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__389)) __PYX_ERR(1, 270, __pyx_L1_error)

  __pyx_tuple__390 = PyTuple_Pack(7, __pyx_n_s_self, __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__390)) __PYX_ERR(1, 305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__390);
  __Pyx_GIVEREF(__pyx_tuple__390);
  __pyx_codeobj__391 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__390, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_lookback, 305, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__391)) __PYX_ERR(1, 305, __pyx_L1_error)

  __pyx_tuple__392 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__392)) __PYX_ERR(1, 325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__392);
  __Pyx_GIVEREF(__pyx_tuple__392);
  __pyx_codeobj__393 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__392, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_output_names, 325, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__393)) __PYX_ERR(1, 325, __pyx_L1_error)

  __pyx_tuple__394 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_ret, __pyx_n_s_index); if (unlikely(!__pyx_tuple__394)) __PYX_ERR(1, 335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__394);
  __Pyx_GIVEREF(__pyx_tuple__394);
  __pyx_codeobj__395 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__394, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_outputs, 335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__395)) __PYX_ERR(1, 335, __pyx_L1_error)

  __pyx_tuple__396 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_input_arrays); if (unlikely(!__pyx_tuple__396)) __PYX_ERR(1, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__396);
  __Pyx_GIVEREF(__pyx_tuple__396);
  __pyx_codeobj__397 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__396, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_run, 365, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__397)) __PYX_ERR(1, 365, __pyx_L1_error)
  __pyx_tuple__398 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__398)) __PYX_ERR(1, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__398);
  __Pyx_GIVEREF(__pyx_tuple__398);

  __pyx_tuple__399 = PyTuple_Pack(15, __pyx_n_s_self, __pyx_n_s_args, __pyx_n_s_kwargs, __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__399)) __PYX_ERR(1, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__399);
  __Pyx_GIVEREF(__pyx_tuple__399);
  __pyx_codeobj__400 = (PyObject*)__Pyx_PyCode_New(1, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_call, 377, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__400)) __PYX_ERR(1, 377, __pyx_L1_error)

  __pyx_tuple__401 = PyTuple_Pack(5, __pyx_n_s_self, __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__401)) __PYX_ERR(1, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__401);
  __Pyx_GIVEREF(__pyx_tuple__401);
  __pyx_codeobj__402 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__401, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_input_price_series_names_2, 442, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__402)) __PYX_ERR(1, 442, __pyx_L1_error)

  __pyx_tuple__403 = PyTuple_Pack(11, __pyx_n_s_self, __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__403)) __PYX_ERR(1, 453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__403);
  __Pyx_GIVEREF(__pyx_tuple__403);
  __pyx_codeobj__404 = (PyObject*)__Pyx_PyCode_New(1, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__403, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_call_function, 453, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__404)) __PYX_ERR(1, 453, __pyx_L1_error)

  __pyx_tuple__405 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_input_name, __pyx_n_s_value, __pyx_n_s_type); if (unlikely(!__pyx_tuple__405)) __PYX_ERR(1, 483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__405);
  __Pyx_GIVEREF(__pyx_tuple__405);
  __pyx_codeobj__406 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__405, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_check_opt_input_value, 483, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__406)) __PYX_ERR(1, 483, __pyx_L1_error)

  __pyx_tuple__407 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_input_name, __pyx_n_s_value); if (unlikely(!__pyx_tuple__407)) __PYX_ERR(1, 498, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__407);
  __Pyx_GIVEREF(__pyx_tuple__407);
  __pyx_codeobj__408 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__407, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_opt_input_value, 498, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__408)) __PYX_ERR(1, 498, __pyx_L1_error)

  __pyx_tuple__409 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__409)) __PYX_ERR(1, 507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__409);
  __Pyx_GIVEREF(__pyx_tuple__409);
  __pyx_codeobj__410 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__409, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_repr, 507, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__410)) __PYX_ERR(1, 507, __pyx_L1_error)

  __pyx_tuple__411 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__411)) __PYX_ERR(1, 510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__411);
  __Pyx_GIVEREF(__pyx_tuple__411);
  __pyx_codeobj__412 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__411, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_unicode, 510, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__412)) __PYX_ERR(1, 510, __pyx_L1_error)

  __pyx_tuple__413 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__413)) __PYX_ERR(1, 513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__413);
  __Pyx_GIVEREF(__pyx_tuple__413);
  __pyx_codeobj__414 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__413, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str, 513, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__414)) __PYX_ERR(1, 513, __pyx_L1_error)

  __pyx_tuple__415 = PyTuple_Pack(3, __pyx_n_s_table, __pyx_n_s_groups, __pyx_n_s_i); if (unlikely(!__pyx_tuple__415)) __PYX_ERR(1, 527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__415);
  __Pyx_GIVEREF(__pyx_tuple__415);
  __pyx_codeobj__416 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__415, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getGroupTable, 527, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__416)) __PYX_ERR(1, 527, __pyx_L1_error)

  __pyx_tuple__417 = PyTuple_Pack(5, __pyx_n_s_group, __pyx_n_s_group, __pyx_n_s_table, __pyx_n_s_functions, __pyx_n_s_i); if (unlikely(!__pyx_tuple__417)) __PYX_ERR(1, 539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__417);
  __Pyx_GIVEREF(__pyx_tuple__417);
  __pyx_codeobj__418 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__417, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getFuncTable, 539, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__418)) __PYX_ERR(1, 539, __pyx_L1_error)

  __pyx_tuple__419 = 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__419)) __PYX_ERR(1, 551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__419);
  __Pyx_GIVEREF(__pyx_tuple__419);
  __pyx_codeobj__420 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__419, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_flags, 551, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__420)) __PYX_ERR(1, 551, __pyx_L1_error)

  __pyx_tuple__421 = PyTuple_Pack(4, __pyx_n_s_function_name, __pyx_n_s_function_name, __pyx_n_s_info, __pyx_n_s_retCode); if (unlikely(!__pyx_tuple__421)) __PYX_ERR(1, 610, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__421);
  __Pyx_GIVEREF(__pyx_tuple__421);
  __pyx_codeobj__422 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__421, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getFuncInfo, 610, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__422)) __PYX_ERR(1, 610, __pyx_L1_error)

  __pyx_tuple__423 = 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__423)) __PYX_ERR(1, 629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__423);
  __Pyx_GIVEREF(__pyx_tuple__423);
  __pyx_codeobj__424 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__423, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getInputParameterInfo, 629, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__424)) __PYX_ERR(1, 629, __pyx_L1_error)

  __pyx_tuple__425 = 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__425)) __PYX_ERR(1, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__425);
  __Pyx_GIVEREF(__pyx_tuple__425);
  __pyx_codeobj__426 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 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__abstract_pxi, __pyx_n_s_ta_getOptInputParameterInfo, 650, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__426)) __PYX_ERR(1, 650, __pyx_L1_error)

  __pyx_tuple__427 = 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__427)) __PYX_ERR(1, 674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__427);
  __Pyx_GIVEREF(__pyx_tuple__427);
  __pyx_codeobj__428 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 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__abstract_pxi, __pyx_n_s_ta_getOutputParameterInfo, 674, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__428)) __PYX_ERR(1, 674, __pyx_L1_error)

  __pyx_tuple__429 = 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__429)) __PYX_ERR(1, 694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__429);
  __Pyx_GIVEREF(__pyx_tuple__429);
  __pyx_codeobj__430 = (PyObject*)__Pyx_PyCode_New(1, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__429, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_defaults_and_docs, 694, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__430)) __PYX_ERR(1, 694, __pyx_L1_error)

  __pyx_tuple__431 = 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__431)) __PYX_ERR(3, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__431);
  __Pyx_GIVEREF(__pyx_tuple__431);
  __pyx_codeobj__432 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__431, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ACOS, 11, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__432)) __PYX_ERR(3, 11, __pyx_L1_error)

  __pyx_tuple__433 = 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__433)) __PYX_ERR(3, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__433);
  __Pyx_GIVEREF(__pyx_tuple__433);
  __pyx_codeobj__434 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__433, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AD, 38, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__434)) __PYX_ERR(3, 38, __pyx_L1_error)

  __pyx_tuple__435 = 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__435)) __PYX_ERR(3, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__435);
  __Pyx_GIVEREF(__pyx_tuple__435);
  __pyx_codeobj__436 = (PyObject*)__Pyx_PyCode_New(2, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__435, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ADD, 74, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__436)) __PYX_ERR(3, 74, __pyx_L1_error)

  __pyx_tuple__437 = 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__437)) __PYX_ERR(3, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__437);
  __Pyx_GIVEREF(__pyx_tuple__437);
  __pyx_codeobj__438 = (PyObject*)__Pyx_PyCode_New(6, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__437, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ADOSC, 105, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__438)) __PYX_ERR(3, 105, __pyx_L1_error)

  __pyx_tuple__439 = 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__439)) __PYX_ERR(3, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__439);
  __Pyx_GIVEREF(__pyx_tuple__439);
  __pyx_codeobj__440 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__439, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ADX, 144, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__440)) __PYX_ERR(3, 144, __pyx_L1_error)

  __pyx_tuple__441 = 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__441)) __PYX_ERR(3, 179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__441);
  __Pyx_GIVEREF(__pyx_tuple__441);
  __pyx_codeobj__442 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__441, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ADXR, 179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__442)) __PYX_ERR(3, 179, __pyx_L1_error)

  __pyx_tuple__443 = 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__443)) __PYX_ERR(3, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__443);
  __Pyx_GIVEREF(__pyx_tuple__443);
  __pyx_codeobj__444 = (PyObject*)__Pyx_PyCode_New(4, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__443, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_APO, 214, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__444)) __PYX_ERR(3, 214, __pyx_L1_error)

  __pyx_tuple__445 = 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__445)) __PYX_ERR(3, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__445);
  __Pyx_GIVEREF(__pyx_tuple__445);
  __pyx_codeobj__446 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__445, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AROON, 245, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__446)) __PYX_ERR(3, 245, __pyx_L1_error)

  __pyx_tuple__447 = 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__447)) __PYX_ERR(3, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__447);
  __Pyx_GIVEREF(__pyx_tuple__447);
  __pyx_codeobj__448 = (PyObject*)__Pyx_PyCode_New(3, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__447, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AROONOSC, 280, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__448)) __PYX_ERR(3, 280, __pyx_L1_error)

  __pyx_tuple__449 = 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__449)) __PYX_ERR(3, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__449);
  __Pyx_GIVEREF(__pyx_tuple__449);
  __pyx_codeobj__450 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 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_ASIN, 312, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__450)) __PYX_ERR(3, 312, __pyx_L1_error)

  __pyx_tuple__451 = 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__451)) __PYX_ERR(3, 339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__451);
  __Pyx_GIVEREF(__pyx_tuple__451);
  __pyx_codeobj__452 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 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_ATAN, 339, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__452)) __PYX_ERR(3, 339, __pyx_L1_error)

  __pyx_tuple__453 = 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__453)) __PYX_ERR(3, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__453);
  __Pyx_GIVEREF(__pyx_tuple__453);
  __pyx_codeobj__454 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 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_ATR, 366, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__454)) __PYX_ERR(3, 366, __pyx_L1_error)

  __pyx_tuple__455 = 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__455)) __PYX_ERR(3, 401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__455);
  __Pyx_GIVEREF(__pyx_tuple__455);
  __pyx_codeobj__456 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__455, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AVGPRICE, 401, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__456)) __PYX_ERR(3, 401, __pyx_L1_error)

  __pyx_tuple__457 = 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__457)) __PYX_ERR(3, 437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__457);
  __Pyx_GIVEREF(__pyx_tuple__457);
  __pyx_codeobj__458 = (PyObject*)__Pyx_PyCode_New(5, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__457, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_BBANDS, 437, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__458)) __PYX_ERR(3, 437, __pyx_L1_error)

  __pyx_tuple__459 = 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__459)) __PYX_ERR(3, 475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__459);
  __Pyx_GIVEREF(__pyx_tuple__459);
  __pyx_codeobj__460 = (PyObject*)__Pyx_PyCode_New(3, 0, 10, 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_BETA, 475, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__460)) __PYX_ERR(3, 475, __pyx_L1_error)

  __pyx_tuple__461 = 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__461)) __PYX_ERR(3, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__461);
  __Pyx_GIVEREF(__pyx_tuple__461);
  __pyx_codeobj__462 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 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_BOP, 508, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__462)) __PYX_ERR(3, 508, __pyx_L1_error)

  __pyx_tuple__463 = 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__463)) __PYX_ERR(3, 544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__463);
  __Pyx_GIVEREF(__pyx_tuple__463);
  __pyx_codeobj__464 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__463, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CCI, 544, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__464)) __PYX_ERR(3, 544, __pyx_L1_error)

  __pyx_tuple__465 = 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__465)) __PYX_ERR(3, 579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__465);
  __Pyx_GIVEREF(__pyx_tuple__465);
  __pyx_codeobj__466 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__465, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL2CROWS, 579, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__466)) __PYX_ERR(3, 579, __pyx_L1_error)

  __pyx_tuple__467 = 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__467)) __PYX_ERR(3, 615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__467);
  __Pyx_GIVEREF(__pyx_tuple__467);
  __pyx_codeobj__468 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__467, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3BLACKCROWS, 615, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__468)) __PYX_ERR(3, 615, __pyx_L1_error)

  __pyx_tuple__469 = 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__469)) __PYX_ERR(3, 651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__469);
  __Pyx_GIVEREF(__pyx_tuple__469);
  __pyx_codeobj__470 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__469, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3INSIDE, 651, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__470)) __PYX_ERR(3, 651, __pyx_L1_error)

  __pyx_tuple__471 = 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__471)) __PYX_ERR(3, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__471);
  __Pyx_GIVEREF(__pyx_tuple__471);
  __pyx_codeobj__472 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__471, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3LINESTRIKE, 687, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__472)) __PYX_ERR(3, 687, __pyx_L1_error)

  __pyx_tuple__473 = 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__473)) __PYX_ERR(3, 723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__473);
  __Pyx_GIVEREF(__pyx_tuple__473);
  __pyx_codeobj__474 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__473, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3OUTSIDE, 723, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__474)) __PYX_ERR(3, 723, __pyx_L1_error)

  __pyx_tuple__475 = 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__475)) __PYX_ERR(3, 759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__475);
  __Pyx_GIVEREF(__pyx_tuple__475);
  __pyx_codeobj__476 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__475, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3STARSINSOUTH, 759, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__476)) __PYX_ERR(3, 759, __pyx_L1_error)

  __pyx_tuple__477 = 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__477)) __PYX_ERR(3, 795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__477);
  __Pyx_GIVEREF(__pyx_tuple__477);
  __pyx_codeobj__478 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__477, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3WHITESOLDIERS, 795, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__478)) __PYX_ERR(3, 795, __pyx_L1_error)

  __pyx_tuple__479 = 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__479)) __PYX_ERR(3, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__479);
  __Pyx_GIVEREF(__pyx_tuple__479);
  __pyx_codeobj__480 = (PyObject*)__Pyx_PyCode_New(5, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__479, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLABANDONEDBABY, 831, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__480)) __PYX_ERR(3, 831, __pyx_L1_error)

  __pyx_tuple__481 = 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__481)) __PYX_ERR(3, 869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__481);
  __Pyx_GIVEREF(__pyx_tuple__481);
  __pyx_codeobj__482 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__481, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLADVANCEBLOCK, 869, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__482)) __PYX_ERR(3, 869, __pyx_L1_error)

  __pyx_tuple__483 = 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__483)) __PYX_ERR(3, 905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__483);
  __Pyx_GIVEREF(__pyx_tuple__483);
  __pyx_codeobj__484 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__483, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLBELTHOLD, 905, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__484)) __PYX_ERR(3, 905, __pyx_L1_error)

  __pyx_tuple__485 = 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__485)) __PYX_ERR(3, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__485);
  __Pyx_GIVEREF(__pyx_tuple__485);
  __pyx_codeobj__486 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__485, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLBREAKAWAY, 941, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__486)) __PYX_ERR(3, 941, __pyx_L1_error)

  __pyx_tuple__487 = 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__487)) __PYX_ERR(3, 977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__487);
  __Pyx_GIVEREF(__pyx_tuple__487);
  __pyx_codeobj__488 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__487, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLCLOSINGMARUBOZU, 977, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__488)) __PYX_ERR(3, 977, __pyx_L1_error)

  __pyx_tuple__489 = 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__489)) __PYX_ERR(3, 1013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__489);
  __Pyx_GIVEREF(__pyx_tuple__489);
  __pyx_codeobj__490 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__489, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLCONCEALBABYSWALL, 1013, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__490)) __PYX_ERR(3, 1013, __pyx_L1_error)

  __pyx_tuple__491 = 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__491)) __PYX_ERR(3, 1049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__491);
  __Pyx_GIVEREF(__pyx_tuple__491);
  __pyx_codeobj__492 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__491, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLCOUNTERATTACK, 1049, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__492)) __PYX_ERR(3, 1049, __pyx_L1_error)

  __pyx_tuple__493 = 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__493)) __PYX_ERR(3, 1085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__493);
  __Pyx_GIVEREF(__pyx_tuple__493);
  __pyx_codeobj__494 = (PyObject*)__Pyx_PyCode_New(5, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__493, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDARKCLOUDCOVER, 1085, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__494)) __PYX_ERR(3, 1085, __pyx_L1_error)

  __pyx_tuple__495 = 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__495)) __PYX_ERR(3, 1123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__495);
  __Pyx_GIVEREF(__pyx_tuple__495);
  __pyx_codeobj__496 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__495, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDOJI, 1123, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__496)) __PYX_ERR(3, 1123, __pyx_L1_error)

  __pyx_tuple__497 = 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__497)) __PYX_ERR(3, 1159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__497);
  __Pyx_GIVEREF(__pyx_tuple__497);
  __pyx_codeobj__498 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__497, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDOJISTAR, 1159, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__498)) __PYX_ERR(3, 1159, __pyx_L1_error)

  __pyx_tuple__499 = 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__499)) __PYX_ERR(3, 1195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__499);
  __Pyx_GIVEREF(__pyx_tuple__499);
  __pyx_codeobj__500 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__499, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDRAGONFLYDOJI, 1195, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__500)) __PYX_ERR(3, 1195, __pyx_L1_error)

  __pyx_tuple__501 = 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__501)) __PYX_ERR(3, 1231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__501);
  __Pyx_GIVEREF(__pyx_tuple__501);
  __pyx_codeobj__502 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 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_CDLENGULFING, 1231, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__502)) __PYX_ERR(3, 1231, __pyx_L1_error)

  __pyx_tuple__503 = 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__503)) __PYX_ERR(3, 1267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__503);
  __Pyx_GIVEREF(__pyx_tuple__503);
  __pyx_codeobj__504 = (PyObject*)__Pyx_PyCode_New(5, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__503, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLEVENINGDOJISTAR, 1267, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__504)) __PYX_ERR(3, 1267, __pyx_L1_error)

  __pyx_tuple__505 = 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__505)) __PYX_ERR(3, 1305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__505);
  __Pyx_GIVEREF(__pyx_tuple__505);
  __pyx_codeobj__506 = (PyObject*)__Pyx_PyCode_New(5, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__505, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLEVENINGSTAR, 1305, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__506)) __PYX_ERR(3, 1305, __pyx_L1_error)

  __pyx_tuple__507 = 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__507)) __PYX_ERR(3, 1343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__507);
  __Pyx_GIVEREF(__pyx_tuple__507);
  __pyx_codeobj__508 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 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_CDLGAPSIDESIDEWHITE, 1343, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__508)) __PYX_ERR(3, 1343, __pyx_L1_error)

  __pyx_tuple__509 = 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__509)) __PYX_ERR(3, 1379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__509);
  __Pyx_GIVEREF(__pyx_tuple__509);
  __pyx_codeobj__510 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__509, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLGRAVESTONEDOJI, 1379, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__510)) __PYX_ERR(3, 1379, __pyx_L1_error)

  __pyx_tuple__511 = 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__511)) __PYX_ERR(3, 1415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__511);
  __Pyx_GIVEREF(__pyx_tuple__511);
  __pyx_codeobj__512 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__511, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHAMMER, 1415, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__512)) __PYX_ERR(3, 1415, __pyx_L1_error)

  __pyx_tuple__513 = 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__513)) __PYX_ERR(3, 1451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__513);
  __Pyx_GIVEREF(__pyx_tuple__513);
  __pyx_codeobj__514 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__513, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHANGINGMAN, 1451, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__514)) __PYX_ERR(3, 1451, __pyx_L1_error)

  __pyx_tuple__515 = 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__515)) __PYX_ERR(3, 1487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__515);
  __Pyx_GIVEREF(__pyx_tuple__515);
  __pyx_codeobj__516 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__515, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHARAMI, 1487, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__516)) __PYX_ERR(3, 1487, __pyx_L1_error)

  __pyx_tuple__517 = 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__517)) __PYX_ERR(3, 1523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__517);
  __Pyx_GIVEREF(__pyx_tuple__517);
  __pyx_codeobj__518 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__517, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHARAMICROSS, 1523, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__518)) __PYX_ERR(3, 1523, __pyx_L1_error)

  __pyx_tuple__519 = 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__519)) __PYX_ERR(3, 1559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__519);
  __Pyx_GIVEREF(__pyx_tuple__519);
  __pyx_codeobj__520 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__519, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHIGHWAVE, 1559, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__520)) __PYX_ERR(3, 1559, __pyx_L1_error)

  __pyx_tuple__521 = 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__521)) __PYX_ERR(3, 1595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__521);
  __Pyx_GIVEREF(__pyx_tuple__521);
  __pyx_codeobj__522 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__521, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHIKKAKE, 1595, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__522)) __PYX_ERR(3, 1595, __pyx_L1_error)

  __pyx_tuple__523 = 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__523)) __PYX_ERR(3, 1631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__523);
  __Pyx_GIVEREF(__pyx_tuple__523);
  __pyx_codeobj__524 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__523, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHIKKAKEMOD, 1631, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__524)) __PYX_ERR(3, 1631, __pyx_L1_error)

  __pyx_tuple__525 = 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__525)) __PYX_ERR(3, 1667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__525);
  __Pyx_GIVEREF(__pyx_tuple__525);
  __pyx_codeobj__526 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__525, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHOMINGPIGEON, 1667, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__526)) __PYX_ERR(3, 1667, __pyx_L1_error)

  __pyx_tuple__527 = 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__527)) __PYX_ERR(3, 1703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__527);
  __Pyx_GIVEREF(__pyx_tuple__527);
  __pyx_codeobj__528 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__527, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLIDENTICAL3CROWS, 1703, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__528)) __PYX_ERR(3, 1703, __pyx_L1_error)

  __pyx_tuple__529 = 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__529)) __PYX_ERR(3, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__529);
  __Pyx_GIVEREF(__pyx_tuple__529);
  __pyx_codeobj__530 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__529, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLINNECK, 1739, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__530)) __PYX_ERR(3, 1739, __pyx_L1_error)

  __pyx_tuple__531 = 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__531)) __PYX_ERR(3, 1775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__531);
  __Pyx_GIVEREF(__pyx_tuple__531);
  __pyx_codeobj__532 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__531, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLINVERTEDHAMMER, 1775, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__532)) __PYX_ERR(3, 1775, __pyx_L1_error)

  __pyx_tuple__533 = 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__533)) __PYX_ERR(3, 1811, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__533);
  __Pyx_GIVEREF(__pyx_tuple__533);
  __pyx_codeobj__534 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__533, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLKICKING, 1811, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__534)) __PYX_ERR(3, 1811, __pyx_L1_error)

  __pyx_tuple__535 = 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__535)) __PYX_ERR(3, 1847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__535);
  __Pyx_GIVEREF(__pyx_tuple__535);
  __pyx_codeobj__536 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__535, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLKICKINGBYLENGTH, 1847, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__536)) __PYX_ERR(3, 1847, __pyx_L1_error)

  __pyx_tuple__537 = 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__537)) __PYX_ERR(3, 1883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__537);
  __Pyx_GIVEREF(__pyx_tuple__537);
  __pyx_codeobj__538 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__537, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLLADDERBOTTOM, 1883, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__538)) __PYX_ERR(3, 1883, __pyx_L1_error)

  __pyx_tuple__539 = 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__539)) __PYX_ERR(3, 1919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__539);
  __Pyx_GIVEREF(__pyx_tuple__539);
  __pyx_codeobj__540 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__539, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLLONGLEGGEDDOJI, 1919, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__540)) __PYX_ERR(3, 1919, __pyx_L1_error)

  __pyx_tuple__541 = 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__541)) __PYX_ERR(3, 1955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__541);
  __Pyx_GIVEREF(__pyx_tuple__541);
  __pyx_codeobj__542 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__541, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLLONGLINE, 1955, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__542)) __PYX_ERR(3, 1955, __pyx_L1_error)

  __pyx_tuple__543 = 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__543)) __PYX_ERR(3, 1991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__543);
  __Pyx_GIVEREF(__pyx_tuple__543);
  __pyx_codeobj__544 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__543, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMARUBOZU, 1991, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__544)) __PYX_ERR(3, 1991, __pyx_L1_error)

  __pyx_tuple__545 = 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__545)) __PYX_ERR(3, 2027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__545);
  __Pyx_GIVEREF(__pyx_tuple__545);
  __pyx_codeobj__546 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__545, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMATCHINGLOW, 2027, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__546)) __PYX_ERR(3, 2027, __pyx_L1_error)

  __pyx_tuple__547 = 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__547)) __PYX_ERR(3, 2063, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__547);
  __Pyx_GIVEREF(__pyx_tuple__547);
  __pyx_codeobj__548 = (PyObject*)__Pyx_PyCode_New(5, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__547, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMATHOLD, 2063, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__548)) __PYX_ERR(3, 2063, __pyx_L1_error)

  __pyx_tuple__549 = 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__549)) __PYX_ERR(3, 2101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__549);
  __Pyx_GIVEREF(__pyx_tuple__549);
  __pyx_codeobj__550 = (PyObject*)__Pyx_PyCode_New(5, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__549, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMORNINGDOJISTAR, 2101, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__550)) __PYX_ERR(3, 2101, __pyx_L1_error)

  __pyx_tuple__551 = 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__551)) __PYX_ERR(3, 2139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__551);
  __Pyx_GIVEREF(__pyx_tuple__551);
  __pyx_codeobj__552 = (PyObject*)__Pyx_PyCode_New(5, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__551, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMORNINGSTAR, 2139, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__552)) __PYX_ERR(3, 2139, __pyx_L1_error)

  __pyx_tuple__553 = 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__553)) __PYX_ERR(3, 2177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__553);
  __Pyx_GIVEREF(__pyx_tuple__553);
  __pyx_codeobj__554 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__553, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLONNECK, 2177, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__554)) __PYX_ERR(3, 2177, __pyx_L1_error)

  __pyx_tuple__555 = 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__555)) __PYX_ERR(3, 2213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__555);
  __Pyx_GIVEREF(__pyx_tuple__555);
  __pyx_codeobj__556 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__555, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLPIERCING, 2213, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__556)) __PYX_ERR(3, 2213, __pyx_L1_error)

  __pyx_tuple__557 = 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__557)) __PYX_ERR(3, 2249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__557);
  __Pyx_GIVEREF(__pyx_tuple__557);
  __pyx_codeobj__558 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__557, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLRICKSHAWMAN, 2249, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__558)) __PYX_ERR(3, 2249, __pyx_L1_error)

  __pyx_tuple__559 = 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__559)) __PYX_ERR(3, 2285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__559);
  __Pyx_GIVEREF(__pyx_tuple__559);
  __pyx_codeobj__560 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__559, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLRISEFALL3METHODS, 2285, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__560)) __PYX_ERR(3, 2285, __pyx_L1_error)

  __pyx_tuple__561 = 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__561)) __PYX_ERR(3, 2321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__561);
  __Pyx_GIVEREF(__pyx_tuple__561);
  __pyx_codeobj__562 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__561, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSEPARATINGLINES, 2321, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__562)) __PYX_ERR(3, 2321, __pyx_L1_error)

  __pyx_tuple__563 = 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__563)) __PYX_ERR(3, 2357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__563);
  __Pyx_GIVEREF(__pyx_tuple__563);
  __pyx_codeobj__564 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__563, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSHOOTINGSTAR, 2357, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__564)) __PYX_ERR(3, 2357, __pyx_L1_error)

  __pyx_tuple__565 = 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__565)) __PYX_ERR(3, 2393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__565);
  __Pyx_GIVEREF(__pyx_tuple__565);
  __pyx_codeobj__566 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__565, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSHORTLINE, 2393, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__566)) __PYX_ERR(3, 2393, __pyx_L1_error)

  __pyx_tuple__567 = 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__567)) __PYX_ERR(3, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__567);
  __Pyx_GIVEREF(__pyx_tuple__567);
  __pyx_codeobj__568 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__567, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSPINNINGTOP, 2429, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__568)) __PYX_ERR(3, 2429, __pyx_L1_error)

  __pyx_tuple__569 = 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__569)) __PYX_ERR(3, 2465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__569);
  __Pyx_GIVEREF(__pyx_tuple__569);
  __pyx_codeobj__570 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__569, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSTALLEDPATTERN, 2465, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__570)) __PYX_ERR(3, 2465, __pyx_L1_error)

  __pyx_tuple__571 = 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__571)) __PYX_ERR(3, 2501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__571);
  __Pyx_GIVEREF(__pyx_tuple__571);
  __pyx_codeobj__572 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__571, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSTICKSANDWICH, 2501, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__572)) __PYX_ERR(3, 2501, __pyx_L1_error)

  __pyx_tuple__573 = 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__573)) __PYX_ERR(3, 2537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__573);
  __Pyx_GIVEREF(__pyx_tuple__573);
  __pyx_codeobj__574 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__573, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTAKURI, 2537, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__574)) __PYX_ERR(3, 2537, __pyx_L1_error)

  __pyx_tuple__575 = 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__575)) __PYX_ERR(3, 2573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__575);
  __Pyx_GIVEREF(__pyx_tuple__575);
  __pyx_codeobj__576 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__575, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTASUKIGAP, 2573, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__576)) __PYX_ERR(3, 2573, __pyx_L1_error)

  __pyx_tuple__577 = 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__577)) __PYX_ERR(3, 2609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__577);
  __Pyx_GIVEREF(__pyx_tuple__577);
  __pyx_codeobj__578 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__577, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTHRUSTING, 2609, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__578)) __PYX_ERR(3, 2609, __pyx_L1_error)

  __pyx_tuple__579 = 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__579)) __PYX_ERR(3, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__579);
  __Pyx_GIVEREF(__pyx_tuple__579);
  __pyx_codeobj__580 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__579, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTRISTAR, 2645, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__580)) __PYX_ERR(3, 2645, __pyx_L1_error)

  __pyx_tuple__581 = 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__581)) __PYX_ERR(3, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__581);
  __Pyx_GIVEREF(__pyx_tuple__581);
  __pyx_codeobj__582 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__581, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLUNIQUE3RIVER, 2681, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__582)) __PYX_ERR(3, 2681, __pyx_L1_error)

  __pyx_tuple__583 = 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__583)) __PYX_ERR(3, 2717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__583);
  __Pyx_GIVEREF(__pyx_tuple__583);
  __pyx_codeobj__584 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__583, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLUPSIDEGAP2CROWS, 2717, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__584)) __PYX_ERR(3, 2717, __pyx_L1_error)

  __pyx_tuple__585 = 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__585)) __PYX_ERR(3, 2753, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__585);
  __Pyx_GIVEREF(__pyx_tuple__585);
  __pyx_codeobj__586 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__585, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLXSIDEGAP3METHODS, 2753, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__586)) __PYX_ERR(3, 2753, __pyx_L1_error)

  __pyx_tuple__587 = 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__587)) __PYX_ERR(3, 2789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__587);
  __Pyx_GIVEREF(__pyx_tuple__587);
  __pyx_codeobj__588 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__587, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CEIL, 2789, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__588)) __PYX_ERR(3, 2789, __pyx_L1_error)

  __pyx_tuple__589 = 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__589)) __PYX_ERR(3, 2816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__589);
  __Pyx_GIVEREF(__pyx_tuple__589);
  __pyx_codeobj__590 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__589, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CMO, 2816, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__590)) __PYX_ERR(3, 2816, __pyx_L1_error)

  __pyx_tuple__591 = 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__591)) __PYX_ERR(3, 2845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__591);
  __Pyx_GIVEREF(__pyx_tuple__591);
  __pyx_codeobj__592 = (PyObject*)__Pyx_PyCode_New(3, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__591, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CORREL, 2845, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__592)) __PYX_ERR(3, 2845, __pyx_L1_error)

  __pyx_tuple__593 = 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__593)) __PYX_ERR(3, 2878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__593);
  __Pyx_GIVEREF(__pyx_tuple__593);
  __pyx_codeobj__594 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__593, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_COS, 2878, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__594)) __PYX_ERR(3, 2878, __pyx_L1_error)

  __pyx_tuple__595 = 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__595)) __PYX_ERR(3, 2905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__595);
  __Pyx_GIVEREF(__pyx_tuple__595);
  __pyx_codeobj__596 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__595, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_COSH, 2905, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__596)) __PYX_ERR(3, 2905, __pyx_L1_error)

  __pyx_tuple__597 = 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__597)) __PYX_ERR(3, 2932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__597);
  __Pyx_GIVEREF(__pyx_tuple__597);
  __pyx_codeobj__598 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__597, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_DEMA, 2932, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__598)) __PYX_ERR(3, 2932, __pyx_L1_error)

  __pyx_tuple__599 = 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__599)) __PYX_ERR(3, 2961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__599);
  __Pyx_GIVEREF(__pyx_tuple__599);
  __pyx_codeobj__600 = (PyObject*)__Pyx_PyCode_New(2, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__599, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_DIV, 2961, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__600)) __PYX_ERR(3, 2961, __pyx_L1_error)

  __pyx_tuple__601 = 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__601)) __PYX_ERR(3, 2992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__601);
  __Pyx_GIVEREF(__pyx_tuple__601);
  __pyx_codeobj__602 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__601, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_DX, 2992, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__602)) __PYX_ERR(3, 2992, __pyx_L1_error)

  __pyx_tuple__603 = 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__603)) __PYX_ERR(3, 3027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__603);
  __Pyx_GIVEREF(__pyx_tuple__603);
  __pyx_codeobj__604 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__603, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_EMA, 3027, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__604)) __PYX_ERR(3, 3027, __pyx_L1_error)

  __pyx_tuple__605 = 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__605)) __PYX_ERR(3, 3056, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__605);
  __Pyx_GIVEREF(__pyx_tuple__605);
  __pyx_codeobj__606 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__605, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_EXP, 3056, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__606)) __PYX_ERR(3, 3056, __pyx_L1_error)

  __pyx_tuple__607 = 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__607)) __PYX_ERR(3, 3083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__607);
  __Pyx_GIVEREF(__pyx_tuple__607);
  __pyx_codeobj__608 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__607, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_FLOOR, 3083, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__608)) __PYX_ERR(3, 3083, __pyx_L1_error)

  __pyx_tuple__609 = 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__609)) __PYX_ERR(3, 3110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__609);
  __Pyx_GIVEREF(__pyx_tuple__609);
  __pyx_codeobj__610 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__609, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_DCPERIOD, 3110, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__610)) __PYX_ERR(3, 3110, __pyx_L1_error)

  __pyx_tuple__611 = 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__611)) __PYX_ERR(3, 3137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__611);
  __Pyx_GIVEREF(__pyx_tuple__611);
  __pyx_codeobj__612 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__611, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_DCPHASE, 3137, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__612)) __PYX_ERR(3, 3137, __pyx_L1_error)

  __pyx_tuple__613 = 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__613)) __PYX_ERR(3, 3164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__613);
  __Pyx_GIVEREF(__pyx_tuple__613);
  __pyx_codeobj__614 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__613, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_PHASOR, 3164, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__614)) __PYX_ERR(3, 3164, __pyx_L1_error)

  __pyx_tuple__615 = 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__615)) __PYX_ERR(3, 3194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__615);
  __Pyx_GIVEREF(__pyx_tuple__615);
  __pyx_codeobj__616 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__615, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_SINE, 3194, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__616)) __PYX_ERR(3, 3194, __pyx_L1_error)

  __pyx_tuple__617 = 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__617)) __PYX_ERR(3, 3224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__617);
  __Pyx_GIVEREF(__pyx_tuple__617);
  __pyx_codeobj__618 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__617, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_TRENDLINE, 3224, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__618)) __PYX_ERR(3, 3224, __pyx_L1_error)

  __pyx_tuple__619 = 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__619)) __PYX_ERR(3, 3251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__619);
  __Pyx_GIVEREF(__pyx_tuple__619);
  __pyx_codeobj__620 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__619, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_TRENDMODE, 3251, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__620)) __PYX_ERR(3, 3251, __pyx_L1_error)

  __pyx_tuple__621 = 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__621)) __PYX_ERR(3, 3278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__621);
  __Pyx_GIVEREF(__pyx_tuple__621);
  __pyx_codeobj__622 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__621, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_KAMA, 3278, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__622)) __PYX_ERR(3, 3278, __pyx_L1_error)

  __pyx_tuple__623 = 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__623)) __PYX_ERR(3, 3307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__623);
  __Pyx_GIVEREF(__pyx_tuple__623);
  __pyx_codeobj__624 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__623, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG, 3307, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__624)) __PYX_ERR(3, 3307, __pyx_L1_error)

  __pyx_tuple__625 = 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__625)) __PYX_ERR(3, 3336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__625);
  __Pyx_GIVEREF(__pyx_tuple__625);
  __pyx_codeobj__626 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__625, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG_ANGLE, 3336, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__626)) __PYX_ERR(3, 3336, __pyx_L1_error)

  __pyx_tuple__627 = 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__627)) __PYX_ERR(3, 3365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__627);
  __Pyx_GIVEREF(__pyx_tuple__627);
  __pyx_codeobj__628 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__627, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG_INTERCEPT, 3365, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__628)) __PYX_ERR(3, 3365, __pyx_L1_error)

  __pyx_tuple__629 = 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__629)) __PYX_ERR(3, 3394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__629);
  __Pyx_GIVEREF(__pyx_tuple__629);
  __pyx_codeobj__630 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__629, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG_SLOPE, 3394, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__630)) __PYX_ERR(3, 3394, __pyx_L1_error)

  __pyx_tuple__631 = 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__631)) __PYX_ERR(3, 3423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__631);
  __Pyx_GIVEREF(__pyx_tuple__631);
  __pyx_codeobj__632 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__631, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LN, 3423, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__632)) __PYX_ERR(3, 3423, __pyx_L1_error)

  __pyx_tuple__633 = 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__633)) __PYX_ERR(3, 3450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__633);
  __Pyx_GIVEREF(__pyx_tuple__633);
  __pyx_codeobj__634 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__633, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LOG10, 3450, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__634)) __PYX_ERR(3, 3450, __pyx_L1_error)

  __pyx_tuple__635 = 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__635)) __PYX_ERR(3, 3477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__635);
  __Pyx_GIVEREF(__pyx_tuple__635);
  __pyx_codeobj__636 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__635, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MA, 3477, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__636)) __PYX_ERR(3, 3477, __pyx_L1_error)

  __pyx_tuple__637 = 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__637)) __PYX_ERR(3, 3507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__637);
  __Pyx_GIVEREF(__pyx_tuple__637);
  __pyx_codeobj__638 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__637, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MACD, 3507, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__638)) __PYX_ERR(3, 3507, __pyx_L1_error)

  __pyx_tuple__639 = 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__639)) __PYX_ERR(3, 3544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__639);
  __Pyx_GIVEREF(__pyx_tuple__639);
  __pyx_codeobj__640 = (PyObject*)__Pyx_PyCode_New(7, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__639, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MACDEXT, 3544, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__640)) __PYX_ERR(3, 3544, __pyx_L1_error)

  __pyx_tuple__641 = 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__641)) __PYX_ERR(3, 3584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__641);
  __Pyx_GIVEREF(__pyx_tuple__641);
  __pyx_codeobj__642 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__641, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MACDFIX, 3584, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__642)) __PYX_ERR(3, 3584, __pyx_L1_error)

  __pyx_tuple__643 = 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__643)) __PYX_ERR(3, 3619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__643);
  __Pyx_GIVEREF(__pyx_tuple__643);
  __pyx_codeobj__644 = (PyObject*)__Pyx_PyCode_New(3, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__643, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAMA, 3619, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__644)) __PYX_ERR(3, 3619, __pyx_L1_error)

  __pyx_tuple__645 = 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__645)) __PYX_ERR(3, 3652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__645);
  __Pyx_GIVEREF(__pyx_tuple__645);
  __pyx_codeobj__646 = (PyObject*)__Pyx_PyCode_New(5, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__645, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAVP, 3652, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__646)) __PYX_ERR(3, 3652, __pyx_L1_error)

  __pyx_tuple__647 = 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__647)) __PYX_ERR(3, 3687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__647);
  __Pyx_GIVEREF(__pyx_tuple__647);
  __pyx_codeobj__648 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__647, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAX, 3687, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__648)) __PYX_ERR(3, 3687, __pyx_L1_error)

  __pyx_tuple__649 = 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__649)) __PYX_ERR(3, 3716, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__649);
  __Pyx_GIVEREF(__pyx_tuple__649);
  __pyx_codeobj__650 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__649, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAXINDEX, 3716, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__650)) __PYX_ERR(3, 3716, __pyx_L1_error)

  __pyx_tuple__651 = 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__651)) __PYX_ERR(3, 3745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__651);
  __Pyx_GIVEREF(__pyx_tuple__651);
  __pyx_codeobj__652 = (PyObject*)__Pyx_PyCode_New(2, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__651, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MEDPRICE, 3745, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__652)) __PYX_ERR(3, 3745, __pyx_L1_error)

  __pyx_tuple__653 = 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__653)) __PYX_ERR(3, 3775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__653);
  __Pyx_GIVEREF(__pyx_tuple__653);
  __pyx_codeobj__654 = (PyObject*)__Pyx_PyCode_New(5, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__653, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MFI, 3775, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__654)) __PYX_ERR(3, 3775, __pyx_L1_error)

  __pyx_tuple__655 = 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__655)) __PYX_ERR(3, 3813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__655);
  __Pyx_GIVEREF(__pyx_tuple__655);
  __pyx_codeobj__656 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__655, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MIDPOINT, 3813, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__656)) __PYX_ERR(3, 3813, __pyx_L1_error)

  __pyx_tuple__657 = 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__657)) __PYX_ERR(3, 3842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__657);
  __Pyx_GIVEREF(__pyx_tuple__657);
  __pyx_codeobj__658 = (PyObject*)__Pyx_PyCode_New(3, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__657, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MIDPRICE, 3842, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__658)) __PYX_ERR(3, 3842, __pyx_L1_error)

  __pyx_tuple__659 = 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__659)) __PYX_ERR(3, 3874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__659);
  __Pyx_GIVEREF(__pyx_tuple__659);
  __pyx_codeobj__660 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__659, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MIN, 3874, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__660)) __PYX_ERR(3, 3874, __pyx_L1_error)

  __pyx_tuple__661 = 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__661)) __PYX_ERR(3, 3903, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__661);
  __Pyx_GIVEREF(__pyx_tuple__661);
  __pyx_codeobj__662 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__661, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MININDEX, 3903, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__662)) __PYX_ERR(3, 3903, __pyx_L1_error)

  __pyx_tuple__663 = 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__663)) __PYX_ERR(3, 3932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__663);
  __Pyx_GIVEREF(__pyx_tuple__663);
  __pyx_codeobj__664 = (PyObject*)__Pyx_PyCode_New(2, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__663, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINMAX, 3932, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__664)) __PYX_ERR(3, 3932, __pyx_L1_error)

  __pyx_tuple__665 = 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__665)) __PYX_ERR(3, 3964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__665);
  __Pyx_GIVEREF(__pyx_tuple__665);
  __pyx_codeobj__666 = (PyObject*)__Pyx_PyCode_New(2, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__665, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINMAXINDEX, 3964, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__666)) __PYX_ERR(3, 3964, __pyx_L1_error)

  __pyx_tuple__667 = 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__667)) __PYX_ERR(3, 3996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__667);
  __Pyx_GIVEREF(__pyx_tuple__667);
  __pyx_codeobj__668 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__667, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINUS_DI, 3996, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__668)) __PYX_ERR(3, 3996, __pyx_L1_error)

  __pyx_tuple__669 = 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__669)) __PYX_ERR(3, 4031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__669);
  __Pyx_GIVEREF(__pyx_tuple__669);
  __pyx_codeobj__670 = (PyObject*)__Pyx_PyCode_New(3, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__669, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINUS_DM, 4031, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__670)) __PYX_ERR(3, 4031, __pyx_L1_error)

  __pyx_tuple__671 = 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__671)) __PYX_ERR(3, 4063, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__671);
  __Pyx_GIVEREF(__pyx_tuple__671);
  __pyx_codeobj__672 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__671, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MOM, 4063, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__672)) __PYX_ERR(3, 4063, __pyx_L1_error)

  __pyx_tuple__673 = 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__673)) __PYX_ERR(3, 4092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__673);
  __Pyx_GIVEREF(__pyx_tuple__673);
  __pyx_codeobj__674 = (PyObject*)__Pyx_PyCode_New(2, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__673, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MULT, 4092, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__674)) __PYX_ERR(3, 4092, __pyx_L1_error)

  __pyx_tuple__675 = 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__675)) __PYX_ERR(3, 4123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__675);
  __Pyx_GIVEREF(__pyx_tuple__675);
  __pyx_codeobj__676 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__675, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_NATR, 4123, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__676)) __PYX_ERR(3, 4123, __pyx_L1_error)

  __pyx_tuple__677 = 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__677)) __PYX_ERR(3, 4158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__677);
  __Pyx_GIVEREF(__pyx_tuple__677);
  __pyx_codeobj__678 = (PyObject*)__Pyx_PyCode_New(2, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__677, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_OBV, 4158, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__678)) __PYX_ERR(3, 4158, __pyx_L1_error)

  __pyx_tuple__679 = 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__679)) __PYX_ERR(3, 4189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__679);
  __Pyx_GIVEREF(__pyx_tuple__679);
  __pyx_codeobj__680 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__679, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_PLUS_DI, 4189, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__680)) __PYX_ERR(3, 4189, __pyx_L1_error)

  __pyx_tuple__681 = 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__681)) __PYX_ERR(3, 4224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__681);
  __Pyx_GIVEREF(__pyx_tuple__681);
  __pyx_codeobj__682 = (PyObject*)__Pyx_PyCode_New(3, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__681, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_PLUS_DM, 4224, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__682)) __PYX_ERR(3, 4224, __pyx_L1_error)

  __pyx_tuple__683 = 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__683)) __PYX_ERR(3, 4256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__683);
  __Pyx_GIVEREF(__pyx_tuple__683);
  __pyx_codeobj__684 = (PyObject*)__Pyx_PyCode_New(4, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__683, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_PPO, 4256, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__684)) __PYX_ERR(3, 4256, __pyx_L1_error)

  __pyx_tuple__685 = 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__685)) __PYX_ERR(3, 4287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__685);
  __Pyx_GIVEREF(__pyx_tuple__685);
  __pyx_codeobj__686 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__685, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROC, 4287, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__686)) __PYX_ERR(3, 4287, __pyx_L1_error)

  __pyx_tuple__687 = 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__687)) __PYX_ERR(3, 4316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__687);
  __Pyx_GIVEREF(__pyx_tuple__687);
  __pyx_codeobj__688 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__687, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROCP, 4316, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__688)) __PYX_ERR(3, 4316, __pyx_L1_error)

  __pyx_tuple__689 = 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__689)) __PYX_ERR(3, 4345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__689);
  __Pyx_GIVEREF(__pyx_tuple__689);
  __pyx_codeobj__690 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__689, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROCR, 4345, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__690)) __PYX_ERR(3, 4345, __pyx_L1_error)

  __pyx_tuple__691 = 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__691)) __PYX_ERR(3, 4374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__691);
  __Pyx_GIVEREF(__pyx_tuple__691);
  __pyx_codeobj__692 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__691, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROCR100, 4374, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__692)) __PYX_ERR(3, 4374, __pyx_L1_error)

  __pyx_tuple__693 = 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__693)) __PYX_ERR(3, 4403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__693);
  __Pyx_GIVEREF(__pyx_tuple__693);
  __pyx_codeobj__694 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__693, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_RSI, 4403, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__694)) __PYX_ERR(3, 4403, __pyx_L1_error)

  __pyx_tuple__695 = 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__695)) __PYX_ERR(3, 4432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__695);
  __Pyx_GIVEREF(__pyx_tuple__695);
  __pyx_codeobj__696 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__695, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SAR, 4432, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__696)) __PYX_ERR(3, 4432, __pyx_L1_error)

  __pyx_tuple__697 = 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__697)) __PYX_ERR(3, 4465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__697);
  __Pyx_GIVEREF(__pyx_tuple__697);
  __pyx_codeobj__698 = (PyObject*)__Pyx_PyCode_New(10, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__697, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SAREXT, 4465, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__698)) __PYX_ERR(3, 4465, __pyx_L1_error)

  __pyx_tuple__699 = 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__699)) __PYX_ERR(3, 4504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__699);
  __Pyx_GIVEREF(__pyx_tuple__699);
  __pyx_codeobj__700 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__699, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SIN, 4504, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__700)) __PYX_ERR(3, 4504, __pyx_L1_error)

  __pyx_tuple__701 = 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__701)) __PYX_ERR(3, 4531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__701);
  __Pyx_GIVEREF(__pyx_tuple__701);
  __pyx_codeobj__702 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__701, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SINH, 4531, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__702)) __PYX_ERR(3, 4531, __pyx_L1_error)

  __pyx_tuple__703 = 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__703)) __PYX_ERR(3, 4558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__703);
  __Pyx_GIVEREF(__pyx_tuple__703);
  __pyx_codeobj__704 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__703, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SMA, 4558, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__704)) __PYX_ERR(3, 4558, __pyx_L1_error)

  __pyx_tuple__705 = 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__705)) __PYX_ERR(3, 4587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__705);
  __Pyx_GIVEREF(__pyx_tuple__705);
  __pyx_codeobj__706 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__705, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SQRT, 4587, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__706)) __PYX_ERR(3, 4587, __pyx_L1_error)

  __pyx_tuple__707 = 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__707)) __PYX_ERR(3, 4614, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__707);
  __Pyx_GIVEREF(__pyx_tuple__707);
  __pyx_codeobj__708 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__707, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STDDEV, 4614, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__708)) __PYX_ERR(3, 4614, __pyx_L1_error)

  __pyx_tuple__709 = 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__709)) __PYX_ERR(3, 4644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__709);
  __Pyx_GIVEREF(__pyx_tuple__709);
  __pyx_codeobj__710 = (PyObject*)__Pyx_PyCode_New(8, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__709, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STOCH, 4644, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__710)) __PYX_ERR(3, 4644, __pyx_L1_error)

  __pyx_tuple__711 = 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__711)) __PYX_ERR(3, 4686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__711);
  __Pyx_GIVEREF(__pyx_tuple__711);
  __pyx_codeobj__712 = (PyObject*)__Pyx_PyCode_New(6, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__711, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STOCHF, 4686, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__712)) __PYX_ERR(3, 4686, __pyx_L1_error)

  __pyx_tuple__713 = 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__713)) __PYX_ERR(3, 4726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__713);
  __Pyx_GIVEREF(__pyx_tuple__713);
  __pyx_codeobj__714 = (PyObject*)__Pyx_PyCode_New(5, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__713, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STOCHRSI, 4726, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__714)) __PYX_ERR(3, 4726, __pyx_L1_error)

  __pyx_tuple__715 = 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__715)) __PYX_ERR(3, 4761, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__715);
  __Pyx_GIVEREF(__pyx_tuple__715);
  __pyx_codeobj__716 = (PyObject*)__Pyx_PyCode_New(2, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__715, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SUB, 4761, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__716)) __PYX_ERR(3, 4761, __pyx_L1_error)

  __pyx_tuple__717 = 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__717)) __PYX_ERR(3, 4792, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__717);
  __Pyx_GIVEREF(__pyx_tuple__717);
  __pyx_codeobj__718 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__717, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SUM, 4792, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__718)) __PYX_ERR(3, 4792, __pyx_L1_error)

  __pyx_tuple__719 = 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__719)) __PYX_ERR(3, 4821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__719);
  __Pyx_GIVEREF(__pyx_tuple__719);
  __pyx_codeobj__720 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__719, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_T3, 4821, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__720)) __PYX_ERR(3, 4821, __pyx_L1_error)

  __pyx_tuple__721 = 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__721)) __PYX_ERR(3, 4851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__721);
  __Pyx_GIVEREF(__pyx_tuple__721);
  __pyx_codeobj__722 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__721, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TAN, 4851, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__722)) __PYX_ERR(3, 4851, __pyx_L1_error)

  __pyx_tuple__723 = 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__723)) __PYX_ERR(3, 4878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__723);
  __Pyx_GIVEREF(__pyx_tuple__723);
  __pyx_codeobj__724 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__723, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TANH, 4878, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__724)) __PYX_ERR(3, 4878, __pyx_L1_error)

  __pyx_tuple__725 = 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__725)) __PYX_ERR(3, 4905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__725);
  __Pyx_GIVEREF(__pyx_tuple__725);
  __pyx_codeobj__726 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__725, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TEMA, 4905, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__726)) __PYX_ERR(3, 4905, __pyx_L1_error)

  __pyx_tuple__727 = 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__727)) __PYX_ERR(3, 4934, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__727);
  __Pyx_GIVEREF(__pyx_tuple__727);
  __pyx_codeobj__728 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__727, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TRANGE, 4934, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__728)) __PYX_ERR(3, 4934, __pyx_L1_error)

  __pyx_tuple__729 = 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__729)) __PYX_ERR(3, 4967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__729);
  __Pyx_GIVEREF(__pyx_tuple__729);
  __pyx_codeobj__730 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__729, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TRIMA, 4967, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__730)) __PYX_ERR(3, 4967, __pyx_L1_error)

  __pyx_tuple__731 = 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__731)) __PYX_ERR(3, 4996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__731);
  __Pyx_GIVEREF(__pyx_tuple__731);
  __pyx_codeobj__732 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__731, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TRIX, 4996, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__732)) __PYX_ERR(3, 4996, __pyx_L1_error)

  __pyx_tuple__733 = 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__733)) __PYX_ERR(3, 5025, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__733);
  __Pyx_GIVEREF(__pyx_tuple__733);
  __pyx_codeobj__734 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__733, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TSF, 5025, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__734)) __PYX_ERR(3, 5025, __pyx_L1_error)

  __pyx_tuple__735 = 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__735)) __PYX_ERR(3, 5054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__735);
  __Pyx_GIVEREF(__pyx_tuple__735);
  __pyx_codeobj__736 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__735, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TYPPRICE, 5054, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__736)) __PYX_ERR(3, 5054, __pyx_L1_error)

  __pyx_tuple__737 = 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__737)) __PYX_ERR(3, 5087, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__737);
  __Pyx_GIVEREF(__pyx_tuple__737);
  __pyx_codeobj__738 = (PyObject*)__Pyx_PyCode_New(6, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__737, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ULTOSC, 5087, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__738)) __PYX_ERR(3, 5087, __pyx_L1_error)

  __pyx_tuple__739 = 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__739)) __PYX_ERR(3, 5124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__739);
  __Pyx_GIVEREF(__pyx_tuple__739);
  __pyx_codeobj__740 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__739, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_VAR, 5124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__740)) __PYX_ERR(3, 5124, __pyx_L1_error)

  __pyx_tuple__741 = 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__741)) __PYX_ERR(3, 5154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__741);
  __Pyx_GIVEREF(__pyx_tuple__741);
  __pyx_codeobj__742 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__741, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_WCLPRICE, 5154, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__742)) __PYX_ERR(3, 5154, __pyx_L1_error)

  __pyx_tuple__743 = 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__743)) __PYX_ERR(3, 5187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__743);
  __Pyx_GIVEREF(__pyx_tuple__743);
  __pyx_codeobj__744 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__743, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_WILLR, 5187, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__744)) __PYX_ERR(3, 5187, __pyx_L1_error)

  __pyx_tuple__745 = 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__745)) __PYX_ERR(3, 5222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__745);
  __Pyx_GIVEREF(__pyx_tuple__745);
  __pyx_codeobj__746 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__745, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_WMA, 5222, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__746)) __PYX_ERR(3, 5222, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
  __pyx_umethod_PyDict_Type_keys.type = (PyObject*)&PyDict_Type;
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(5, 1, __pyx_L1_error);
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_9 = PyInt_FromLong(9); if (unlikely(!__pyx_int_9)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_12 = PyInt_FromLong(12); if (unlikely(!__pyx_int_12)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_16 = PyInt_FromLong(16); if (unlikely(!__pyx_int_16)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_32 = PyInt_FromLong(32); if (unlikely(!__pyx_int_32)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_64 = PyInt_FromLong(64); if (unlikely(!__pyx_int_64)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_128 = PyInt_FromLong(128); if (unlikely(!__pyx_int_128)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_256 = PyInt_FromLong(256); if (unlikely(!__pyx_int_256)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_512 = PyInt_FromLong(512); if (unlikely(!__pyx_int_512)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_1024 = PyInt_FromLong(1024); if (unlikely(!__pyx_int_1024)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_2048 = PyInt_FromLong(2048); if (unlikely(!__pyx_int_2048)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_4096 = PyInt_FromLong(4096); if (unlikely(!__pyx_int_4096)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_16777216 = PyInt_FromLong(16777216L); if (unlikely(!__pyx_int_16777216)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_67108864 = PyInt_FromLong(67108864L); if (unlikely(!__pyx_int_67108864)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_134217728 = PyInt_FromLong(134217728L); if (unlikely(!__pyx_int_134217728)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_268435456 = PyInt_FromLong(268435456L); if (unlikely(!__pyx_int_268435456)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(5, 1, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/

static int __Pyx_modinit_global_init_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
  /*--- Global init code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_variable_export_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
  /*--- Variable export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_export_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
  /*--- Function export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_type_init_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_type_import_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
  /*--- Type import code ---*/
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", 
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyTypeObject),
  #else
  sizeof(PyHeapTypeObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn);
   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(4, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore);
   if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(4, 200, __pyx_L1_error)
  __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore);
   if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(4, 223, __pyx_L1_error)
  __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore);
   if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(4, 227, __pyx_L1_error)
  __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore);
   if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(4, 239, __pyx_L1_error)
  __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_5numpy_generic) __PYX_ERR(4, 771, __pyx_L1_error)
  __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_5numpy_number) __PYX_ERR(4, 773, __pyx_L1_error)
  __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_5numpy_integer) __PYX_ERR(4, 775, __pyx_L1_error)
  __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(4, 777, __pyx_L1_error)
  __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(4, 779, __pyx_L1_error)
  __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(4, 781, __pyx_L1_error)
  __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_5numpy_floating) __PYX_ERR(4, 783, __pyx_L1_error)
  __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(4, 785, __pyx_L1_error)
  __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(4, 787, __pyx_L1_error)
  __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_5numpy_character) __PYX_ERR(4, 789, __pyx_L1_error)
  __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore);
   if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(4, 827, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_variable_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
  /*--- Variable import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
  /*--- Function import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}


#ifndef CYTHON_NO_PYINIT_EXPORT
#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#elif PY_MAJOR_VERSION < 3
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" void
#else
#define __Pyx_PyMODINIT_FUNC void
#endif
#else
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
#else
#define __Pyx_PyMODINIT_FUNC PyObject *
#endif
#endif


#if PY_MAJOR_VERSION < 3
__Pyx_PyMODINIT_FUNC init_ta_lib(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC init_ta_lib(void)
#else
__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void)
#if CYTHON_PEP489_MULTI_PHASE_INIT
{
  return PyModuleDef_Init(&__pyx_moduledef);
}
static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
    #if PY_VERSION_HEX >= 0x030700A1
    static PY_INT64_T main_interpreter_id = -1;
    PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
    if (main_interpreter_id == -1) {
        main_interpreter_id = current_id;
        return (unlikely(current_id == -1)) ? -1 : 0;
    } else if (unlikely(main_interpreter_id != current_id))
    #else
    static PyInterpreterState *main_interpreter = NULL;
    PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
    if (!main_interpreter) {
        main_interpreter = current_interpreter;
    } else if (unlikely(main_interpreter != current_interpreter))
    #endif
    {
        PyErr_SetString(
            PyExc_ImportError,
            "Interpreter change detected - this module can only be loaded into one interpreter per process.");
        return -1;
    }
    return 0;
}
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) {
    PyObject *value = PyObject_GetAttrString(spec, from_name);
    int result = 0;
    if (likely(value)) {
        if (allow_none || value != Py_None) {
            result = PyDict_SetItemString(moddict, to_name, value);
        }
        Py_DECREF(value);
    } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Clear();
    } else {
        result = -1;
    }
    return result;
}
static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) {
    PyObject *module = NULL, *moddict, *modname;
    if (__Pyx_check_single_interpreter())
        return NULL;
    if (__pyx_m)
        return __Pyx_NewRef(__pyx_m);
    modname = PyObject_GetAttrString(spec, "name");
    if (unlikely(!modname)) goto bad;
    module = PyModule_NewObject(modname);
    Py_DECREF(modname);
    if (unlikely(!module)) goto bad;
    moddict = PyModule_GetDict(module);
    if (unlikely(!moddict)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
    return module;
bad:
    Py_XDECREF(module);
    return NULL;
}


static CYTHON_SMALL_CODE int __pyx_pymod_exec__ta_lib(PyObject *__pyx_pyinit_module)
#endif
#endif
{
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *(*__pyx_t_14)(PyObject *);
  Py_ssize_t __pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  double __pyx_t_19;
  int __pyx_t_20;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  int __pyx_t_24;
  int __pyx_t_25;
  PyObject *(*__pyx_t_26)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module '_ta_lib' has already been imported. Re-initialisation is not supported.");
    return -1;
  }
  #elif PY_MAJOR_VERSION >= 3
  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
  #endif
  #if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
if (!__Pyx_RefNanny) {
  PyErr_Clear();
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
  if (!__Pyx_RefNanny)
      Py_FatalError("failed to import 'refnanny' module");
}
#endif
  __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void)", 0);
  if (__Pyx_check_binary_version() < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  #ifdef __Pxy_PyFrame_Initialize_Offsets
  __Pxy_PyFrame_Initialize_Offsets();
  #endif
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(5, 1, __pyx_L1_error)
  __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(5, 1, __pyx_L1_error)
  #ifdef __Pyx_CyFunction_USED
  if (__pyx_CyFunction_init() < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_FusedFunction_USED
  if (__pyx_FusedFunction_init() < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Coroutine_USED
  if (__pyx_Coroutine_init() < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Generator_USED
  if (__pyx_Generator_init() < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_AsyncGen_USED
  if (__pyx_AsyncGen_init() < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_StopAsyncIteration_USED
  if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  #endif
  /*--- Library function declarations ---*/
  /*--- Threads initialization code ---*/
  #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
  PyEval_InitThreads();
  #endif
  /*--- Module creation code ---*/
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __pyx_m = __pyx_pyinit_module;
  Py_INCREF(__pyx_m);
  #else
  #if PY_MAJOR_VERSION < 3
  __pyx_m = Py_InitModule4("_ta_lib", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
  #else
  __pyx_m = PyModule_Create(&__pyx_moduledef);
  #endif
  if (unlikely(!__pyx_m)) __PYX_ERR(5, 1, __pyx_L1_error)
  #endif
  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(5, 1, __pyx_L1_error)
  Py_INCREF(__pyx_d);
  __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(5, 1, __pyx_L1_error)
  Py_INCREF(__pyx_b);
  __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(5, 1, __pyx_L1_error)
  Py_INCREF(__pyx_cython_runtime);
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(5, 1, __pyx_L1_error);
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitGlobals() < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
  if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  #endif
  if (__pyx_module_is_main_talib___ta_lib) {
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  }
  #if PY_MAJOR_VERSION >= 3
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(5, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "talib._ta_lib")) {
      if (unlikely(PyDict_SetItemString(modules, "talib._ta_lib", __pyx_m) < 0)) __PYX_ERR(5, 1, __pyx_L1_error)
    }
  }
  #endif
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  /*--- Global type/function init code ---*/
  (void)__Pyx_modinit_global_init_code();
  (void)__Pyx_modinit_variable_export_code();
  (void)__Pyx_modinit_function_export_code();
  (void)__Pyx_modinit_type_init_code();
  if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(5, 1, __pyx_L1_error)
  (void)__Pyx_modinit_variable_import_code();
  (void)__Pyx_modinit_function_import_code();
  /*--- Execution code ---*/
  #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
  if (__Pyx_patch_abc() < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  #endif

  __pyx_t_1 = __Pyx_PyBytes_FromString(TA_GetVersionString()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_version, __pyx_t_1) < 0) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_3_ta_initialize, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_initialize, __pyx_t_1) < 0) __PYX_ERR(0, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_5_ta_shutdown, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_shutdown, __pyx_t_1) < 0) __PYX_ERR(0, 55, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__18); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_tuple__18, __pyx_n_s_MA_Type, __pyx_n_s_MA_Type, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
    PyObject* sequence = __pyx_t_3;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 9)) {
      if (size > 9) __Pyx_RaiseTooManyValuesError(9);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 61, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); 
      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 3); 
      __pyx_t_8 = PyTuple_GET_ITEM(sequence, 4); 
      __pyx_t_9 = PyTuple_GET_ITEM(sequence, 5); 
      __pyx_t_10 = PyTuple_GET_ITEM(sequence, 6); 
      __pyx_t_11 = PyTuple_GET_ITEM(sequence, 7); 
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 8); 
    } else {
      __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_6 = PyList_GET_ITEM(sequence, 2); 
      __pyx_t_7 = PyList_GET_ITEM(sequence, 3); 
      __pyx_t_8 = PyList_GET_ITEM(sequence, 4); 
      __pyx_t_9 = PyList_GET_ITEM(sequence, 5); 
      __pyx_t_10 = PyList_GET_ITEM(sequence, 6); 
      __pyx_t_11 = PyList_GET_ITEM(sequence, 7); 
      __pyx_t_12 = PyList_GET_ITEM(sequence, 8); 
    }
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_t_12);
    #else
    {
      Py_ssize_t i;
      PyObject** temps[9] = {&__pyx_t_4,&__pyx_t_5,&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12};
      for (i=0; i < 9; i++) {
        PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 61, __pyx_L1_error)
        __Pyx_GOTREF(item);
        *(temps[i]) = item;
      }
    }
    #endif
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    Py_ssize_t index = -1;
    PyObject** temps[9] = {&__pyx_t_4,&__pyx_t_5,&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12};
    __pyx_t_13 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 61, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_13)->tp_iternext;
    for (index=0; index < 9; index++) {
      PyObject* item = __pyx_t_14(__pyx_t_13); if (unlikely(!item)) goto __pyx_L2_unpacking_failed;
      __Pyx_GOTREF(item);
      *(temps[index]) = item;
    }
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_13), 9) < 0) __PYX_ERR(0, 61, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L3_unpacking_done;
    __pyx_L2_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 61, __pyx_L1_error)
    __pyx_L3_unpacking_done:;
  }
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_SMA, __pyx_t_4) < 0) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_EMA, __pyx_t_5) < 0) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_WMA, __pyx_t_6) < 0) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_DEMA, __pyx_t_7) < 0) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_TEMA, __pyx_t_8) < 0) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_TRIMA, __pyx_t_9) < 0) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_KAMA, __pyx_t_10) < 0) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_MAMA, __pyx_t_11) < 0) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_T3, __pyx_t_12) < 0) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  __pyx_t_3 = __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__21)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_init, __pyx_t_3) < 0) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = __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__23)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_getitem, __pyx_t_3) < 0) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_MA_Type, __pyx_tuple__18, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA_Type, __pyx_t_3) < 0) __PYX_ERR(0, 60, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA_Type, __pyx_t_2) < 0) __PYX_ERR(0, 79, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __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_2) < 0) __PYX_ERR(0, 81, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_2 = __pyx_int_0;
  __pyx_t_1 = PyList_New(24); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_ADX);
  __Pyx_GIVEREF(__pyx_n_s_ADX);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_ADX);
  __Pyx_INCREF(__pyx_n_s_ADXR);
  __Pyx_GIVEREF(__pyx_n_s_ADXR);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_ADXR);
  __Pyx_INCREF(__pyx_n_s_ATR);
  __Pyx_GIVEREF(__pyx_n_s_ATR);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_ATR);
  __Pyx_INCREF(__pyx_n_s_CMO);
  __Pyx_GIVEREF(__pyx_n_s_CMO);
  PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_CMO);
  __Pyx_INCREF(__pyx_n_s_DX);
  __Pyx_GIVEREF(__pyx_n_s_DX);
  PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_s_DX);
  __Pyx_INCREF(__pyx_n_s_EMA);
  __Pyx_GIVEREF(__pyx_n_s_EMA);
  PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_s_EMA);
  __Pyx_INCREF(__pyx_n_s_HT_DCPERIOD);
  __Pyx_GIVEREF(__pyx_n_s_HT_DCPERIOD);
  PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_s_HT_DCPERIOD);
  __Pyx_INCREF(__pyx_n_s_HT_DCPHASE);
  __Pyx_GIVEREF(__pyx_n_s_HT_DCPHASE);
  PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_s_HT_DCPHASE);
  __Pyx_INCREF(__pyx_n_s_HT_PHASOR);
  __Pyx_GIVEREF(__pyx_n_s_HT_PHASOR);
  PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_s_HT_PHASOR);
  __Pyx_INCREF(__pyx_n_s_HT_SINE);
  __Pyx_GIVEREF(__pyx_n_s_HT_SINE);
  PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_s_HT_SINE);
  __Pyx_INCREF(__pyx_n_s_HT_TRENDLINE);
  __Pyx_GIVEREF(__pyx_n_s_HT_TRENDLINE);
  PyList_SET_ITEM(__pyx_t_1, 10, __pyx_n_s_HT_TRENDLINE);
  __Pyx_INCREF(__pyx_n_s_HT_TRENDMODE);
  __Pyx_GIVEREF(__pyx_n_s_HT_TRENDMODE);
  PyList_SET_ITEM(__pyx_t_1, 11, __pyx_n_s_HT_TRENDMODE);
  __Pyx_INCREF(__pyx_n_s_KAMA);
  __Pyx_GIVEREF(__pyx_n_s_KAMA);
  PyList_SET_ITEM(__pyx_t_1, 12, __pyx_n_s_KAMA);
  __Pyx_INCREF(__pyx_n_s_MAMA);
  __Pyx_GIVEREF(__pyx_n_s_MAMA);
  PyList_SET_ITEM(__pyx_t_1, 13, __pyx_n_s_MAMA);
  __Pyx_INCREF(__pyx_n_s_MFI);
  __Pyx_GIVEREF(__pyx_n_s_MFI);
  PyList_SET_ITEM(__pyx_t_1, 14, __pyx_n_s_MFI);
  __Pyx_INCREF(__pyx_n_s_MINUS_DI);
  __Pyx_GIVEREF(__pyx_n_s_MINUS_DI);
  PyList_SET_ITEM(__pyx_t_1, 15, __pyx_n_s_MINUS_DI);
  __Pyx_INCREF(__pyx_n_s_MINUS_DM);
  __Pyx_GIVEREF(__pyx_n_s_MINUS_DM);
  PyList_SET_ITEM(__pyx_t_1, 16, __pyx_n_s_MINUS_DM);
  __Pyx_INCREF(__pyx_n_s_NATR);
  __Pyx_GIVEREF(__pyx_n_s_NATR);
  PyList_SET_ITEM(__pyx_t_1, 17, __pyx_n_s_NATR);
  __Pyx_INCREF(__pyx_n_s_PLUS_DI);
  __Pyx_GIVEREF(__pyx_n_s_PLUS_DI);
  PyList_SET_ITEM(__pyx_t_1, 18, __pyx_n_s_PLUS_DI);
  __Pyx_INCREF(__pyx_n_s_PLUS_DM);
  __Pyx_GIVEREF(__pyx_n_s_PLUS_DM);
  PyList_SET_ITEM(__pyx_t_1, 19, __pyx_n_s_PLUS_DM);
  __Pyx_INCREF(__pyx_n_s_RSI);
  __Pyx_GIVEREF(__pyx_n_s_RSI);
  PyList_SET_ITEM(__pyx_t_1, 20, __pyx_n_s_RSI);
  __Pyx_INCREF(__pyx_n_s_STOCHRSI);
  __Pyx_GIVEREF(__pyx_n_s_STOCHRSI);
  PyList_SET_ITEM(__pyx_t_1, 21, __pyx_n_s_STOCHRSI);
  __Pyx_INCREF(__pyx_n_s_T3);
  __Pyx_GIVEREF(__pyx_n_s_T3);
  PyList_SET_ITEM(__pyx_t_1, 22, __pyx_n_s_T3);
  __Pyx_INCREF(__pyx_n_s_ALL);
  __Pyx_GIVEREF(__pyx_n_s_ALL);
  PyList_SET_ITEM(__pyx_t_1, 23, __pyx_n_s_ALL);
  __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_15 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (__pyx_t_15 >= 24) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_15); __Pyx_INCREF(__pyx_t_1); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 82, __pyx_L1_error)
    #else
    __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_name, __pyx_t_1) < 0) __PYX_ERR(0, 82, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_i, __pyx_t_2) < 0) __PYX_ERR(0, 82, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2);
    __pyx_t_2 = __pyx_t_1;
    __pyx_t_1 = 0;

    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_ta_func_unst_ids); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_name); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_t_11, __pyx_t_1) < 0)) __PYX_ERR(0, 88, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_7_ta_set_unstable_period, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_unstable_period, __pyx_t_2) < 0) __PYX_ERR(0, 90, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_9_ta_get_unstable_period, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_get_unstable_period, __pyx_t_2) < 0) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_11_ta_set_compatibility, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_compatibility, __pyx_t_2) < 0) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_13_ta_get_compatibility, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_get_compatibility, __pyx_t_2) < 0) __PYX_ERR(0, 107, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__32); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_tuple__32, __pyx_n_s_CandleSettingType, __pyx_n_s_CandleSettingType, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 12)) {
      if (size > 12) __Pyx_RaiseTooManyValuesError(12);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 113, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_10 = PyTuple_GET_ITEM(sequence, 2); 
      __pyx_t_9 = PyTuple_GET_ITEM(sequence, 3); 
      __pyx_t_8 = PyTuple_GET_ITEM(sequence, 4); 
      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 5); 
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 6); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 7); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 8); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 9); 
      __pyx_t_16 = PyTuple_GET_ITEM(sequence, 10); 
      __pyx_t_17 = PyTuple_GET_ITEM(sequence, 11); 
    } else {
      __pyx_t_11 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_10 = PyList_GET_ITEM(sequence, 2); 
      __pyx_t_9 = PyList_GET_ITEM(sequence, 3); 
      __pyx_t_8 = PyList_GET_ITEM(sequence, 4); 
      __pyx_t_7 = PyList_GET_ITEM(sequence, 5); 
      __pyx_t_6 = PyList_GET_ITEM(sequence, 6); 
      __pyx_t_5 = PyList_GET_ITEM(sequence, 7); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 8); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 9); 
      __pyx_t_16 = PyList_GET_ITEM(sequence, 10); 
      __pyx_t_17 = PyList_GET_ITEM(sequence, 11); 
    }
    __Pyx_INCREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_t_12);
    __Pyx_INCREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_16);
    __Pyx_INCREF(__pyx_t_17);
    #else
    {
      Py_ssize_t i;
      PyObject** temps[12] = {&__pyx_t_11,&__pyx_t_12,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8,&__pyx_t_7,&__pyx_t_6,&__pyx_t_5,&__pyx_t_4,&__pyx_t_13,&__pyx_t_16,&__pyx_t_17};
      for (i=0; i < 12; i++) {
        PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 113, __pyx_L1_error)
        __Pyx_GOTREF(item);
        *(temps[i]) = item;
      }
    }
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    PyObject** temps[12] = {&__pyx_t_11,&__pyx_t_12,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8,&__pyx_t_7,&__pyx_t_6,&__pyx_t_5,&__pyx_t_4,&__pyx_t_13,&__pyx_t_16,&__pyx_t_17};
    __pyx_t_18 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_18)->tp_iternext;
    for (index=0; index < 12; index++) {
      PyObject* item = __pyx_t_14(__pyx_t_18); if (unlikely(!item)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(item);
      *(temps[index]) = item;
    }
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_18), 12) < 0) __PYX_ERR(0, 113, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    goto __pyx_L7_unpacking_done;
    __pyx_L6_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 113, __pyx_L1_error)
    __pyx_L7_unpacking_done:;
  }

  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_BodyLong, __pyx_t_11) < 0) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_BodyVeryLong, __pyx_t_12) < 0) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_BodyShort, __pyx_t_10) < 0) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_BodyDoji, __pyx_t_9) < 0) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_ShadowLong, __pyx_t_8) < 0) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_ShadowVeryLong, __pyx_t_7) < 0) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_ShadowShort, __pyx_t_6) < 0) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_ShadowVeryShort, __pyx_t_5) < 0) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_Near, __pyx_t_4) < 0) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_Far, __pyx_t_13) < 0) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_Equal, __pyx_t_16) < 0) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_AllCandleSettings, __pyx_t_17) < 0) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  __pyx_t_1 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_CandleSettingType, __pyx_tuple__32, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CandleSettingType, __pyx_t_1) < 0) __PYX_ERR(0, 112, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CandleSettingType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 117, __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, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CandleSettingType, __pyx_t_3) < 0) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__34); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_tuple__34, __pyx_n_s_RangeType, __pyx_n_s_RangeType, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 120, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_17 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_16 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 2); 
    } else {
      __pyx_t_17 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_16 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 2); 
    }
    __Pyx_INCREF(__pyx_t_17);
    __Pyx_INCREF(__pyx_t_16);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_17 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_16 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_13 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_17 = __pyx_t_14(__pyx_t_4); if (unlikely(!__pyx_t_17)) goto __pyx_L8_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_17);
    index = 1; __pyx_t_16 = __pyx_t_14(__pyx_t_4); if (unlikely(!__pyx_t_16)) goto __pyx_L8_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_16);
    index = 2; __pyx_t_13 = __pyx_t_14(__pyx_t_4); if (unlikely(!__pyx_t_13)) goto __pyx_L8_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_4), 3) < 0) __PYX_ERR(0, 120, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L9_unpacking_done;
    __pyx_L8_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 120, __pyx_L1_error)
    __pyx_L9_unpacking_done:;
  }
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_RealBody, __pyx_t_17) < 0) __PYX_ERR(0, 120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_HighLow, __pyx_t_16) < 0) __PYX_ERR(0, 120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Shadows, __pyx_t_13) < 0) __PYX_ERR(0, 120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  __pyx_t_1 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_RangeType, __pyx_tuple__34, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_RangeType, __pyx_t_1) < 0) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_RangeType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_RangeType, __pyx_t_2) < 0) __PYX_ERR(0, 122, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_15_ta_set_candle_settings, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_candle_settings, __pyx_t_2) < 0) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_17_ta_restore_candle_default_settings, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_restore_candle_default_setti, __pyx_t_2) < 0) __PYX_ERR(0, 129, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_nan);
  __Pyx_GIVEREF(__pyx_n_s_nan);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_nan);
  __pyx_t_3 = __Pyx_Import(__pyx_n_s_numpy, __pyx_t_2, -1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_nan); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nan, __pyx_t_2) < 0) __PYX_ERR(2, 2, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_nan); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_19 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_19 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 7, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_5talib_7_ta_lib_NaN = __pyx_t_19;

  __pyx_t_20 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(2, 15, __pyx_L1_error)

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_19ACOS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ACOS, __pyx_t_3) < 0) __PYX_ERR(2, 144, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_21AD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_AD, __pyx_t_3) < 0) __PYX_ERR(2, 173, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_23ADD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADD, __pyx_t_3) < 0) __PYX_ERR(2, 205, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_25ADOSC, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADOSC, __pyx_t_3) < 0) __PYX_ERR(2, 236, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_27ADX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADX, __pyx_t_3) < 0) __PYX_ERR(2, 271, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_29ADXR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADXR, __pyx_t_3) < 0) __PYX_ERR(2, 304, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_31APO, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_APO, __pyx_t_3) < 0) __PYX_ERR(2, 337, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_33AROON, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_AROON, __pyx_t_3) < 0) __PYX_ERR(2, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_35AROONOSC, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_AROONOSC, __pyx_t_3) < 0) __PYX_ERR(2, 405, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_37ASIN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ASIN, __pyx_t_3) < 0) __PYX_ERR(2, 437, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_39ATAN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ATAN, __pyx_t_3) < 0) __PYX_ERR(2, 466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_41ATR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ATR, __pyx_t_3) < 0) __PYX_ERR(2, 495, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_43AVGPRICE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 528, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_AVGPRICE, __pyx_t_3) < 0) __PYX_ERR(2, 528, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_45BBANDS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_BBANDS, __pyx_t_3) < 0) __PYX_ERR(2, 560, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_47BETA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_BETA, __pyx_t_3) < 0) __PYX_ERR(2, 600, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_49BOP, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_BOP, __pyx_t_3) < 0) __PYX_ERR(2, 633, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_51CCI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 665, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CCI, __pyx_t_3) < 0) __PYX_ERR(2, 665, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_53CDL2CROWS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL2CROWS, __pyx_t_3) < 0) __PYX_ERR(2, 698, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_55CDL3BLACKCROWS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3BLACKCROWS, __pyx_t_3) < 0) __PYX_ERR(2, 730, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_57CDL3INSIDE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3INSIDE, __pyx_t_3) < 0) __PYX_ERR(2, 762, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_59CDL3LINESTRIKE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3LINESTRIKE, __pyx_t_3) < 0) __PYX_ERR(2, 794, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_61CDL3OUTSIDE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3OUTSIDE, __pyx_t_3) < 0) __PYX_ERR(2, 826, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_63CDL3STARSINSOUTH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3STARSINSOUTH, __pyx_t_3) < 0) __PYX_ERR(2, 858, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_65CDL3WHITESOLDIERS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3WHITESOLDIERS, __pyx_t_3) < 0) __PYX_ERR(2, 890, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_67CDLABANDONEDBABY, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLABANDONEDBABY, __pyx_t_3) < 0) __PYX_ERR(2, 922, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_69CDLADVANCEBLOCK, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLADVANCEBLOCK, __pyx_t_3) < 0) __PYX_ERR(2, 956, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_71CDLBELTHOLD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLBELTHOLD, __pyx_t_3) < 0) __PYX_ERR(2, 988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_73CDLBREAKAWAY, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1020, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLBREAKAWAY, __pyx_t_3) < 0) __PYX_ERR(2, 1020, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_75CDLCLOSINGMARUBOZU, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCLOSINGMARUBOZU, __pyx_t_3) < 0) __PYX_ERR(2, 1052, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_77CDLCONCEALBABYSWALL, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1084, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCONCEALBABYSWALL, __pyx_t_3) < 0) __PYX_ERR(2, 1084, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_79CDLCOUNTERATTACK, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCOUNTERATTACK, __pyx_t_3) < 0) __PYX_ERR(2, 1116, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_81CDLDARKCLOUDCOVER, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDARKCLOUDCOVER, __pyx_t_3) < 0) __PYX_ERR(2, 1148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_83CDLDOJI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDOJI, __pyx_t_3) < 0) __PYX_ERR(2, 1182, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_85CDLDOJISTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(2, 1214, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_87CDLDRAGONFLYDOJI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDRAGONFLYDOJI, __pyx_t_3) < 0) __PYX_ERR(2, 1246, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_89CDLENGULFING, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLENGULFING, __pyx_t_3) < 0) __PYX_ERR(2, 1278, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_91CDLEVENINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLEVENINGDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(2, 1310, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_93CDLEVENINGSTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLEVENINGSTAR, __pyx_t_3) < 0) __PYX_ERR(2, 1344, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_95CDLGAPSIDESIDEWHITE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLGAPSIDESIDEWHITE, __pyx_t_3) < 0) __PYX_ERR(2, 1378, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_97CDLGRAVESTONEDOJI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLGRAVESTONEDOJI, __pyx_t_3) < 0) __PYX_ERR(2, 1410, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_99CDLHAMMER, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHAMMER, __pyx_t_3) < 0) __PYX_ERR(2, 1442, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_101CDLHANGINGMAN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHANGINGMAN, __pyx_t_3) < 0) __PYX_ERR(2, 1474, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_103CDLHARAMI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHARAMI, __pyx_t_3) < 0) __PYX_ERR(2, 1506, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_105CDLHARAMICROSS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1538, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHARAMICROSS, __pyx_t_3) < 0) __PYX_ERR(2, 1538, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_107CDLHIGHWAVE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1570, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIGHWAVE, __pyx_t_3) < 0) __PYX_ERR(2, 1570, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_109CDLHIKKAKE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIKKAKE, __pyx_t_3) < 0) __PYX_ERR(2, 1602, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_111CDLHIKKAKEMOD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIKKAKEMOD, __pyx_t_3) < 0) __PYX_ERR(2, 1634, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_113CDLHOMINGPIGEON, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1666, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHOMINGPIGEON, __pyx_t_3) < 0) __PYX_ERR(2, 1666, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_115CDLIDENTICAL3CROWS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLIDENTICAL3CROWS, __pyx_t_3) < 0) __PYX_ERR(2, 1698, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_117CDLINNECK, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLINNECK, __pyx_t_3) < 0) __PYX_ERR(2, 1730, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_119CDLINVERTEDHAMMER, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLINVERTEDHAMMER, __pyx_t_3) < 0) __PYX_ERR(2, 1762, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_121CDLKICKING, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLKICKING, __pyx_t_3) < 0) __PYX_ERR(2, 1794, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_123CDLKICKINGBYLENGTH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLKICKINGBYLENGTH, __pyx_t_3) < 0) __PYX_ERR(2, 1826, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_125CDLLADDERBOTTOM, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLADDERBOTTOM, __pyx_t_3) < 0) __PYX_ERR(2, 1858, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_127CDLLONGLEGGEDDOJI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLONGLEGGEDDOJI, __pyx_t_3) < 0) __PYX_ERR(2, 1890, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_129CDLLONGLINE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLONGLINE, __pyx_t_3) < 0) __PYX_ERR(2, 1922, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_131CDLMARUBOZU, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMARUBOZU, __pyx_t_3) < 0) __PYX_ERR(2, 1954, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_133CDLMATCHINGLOW, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMATCHINGLOW, __pyx_t_3) < 0) __PYX_ERR(2, 1986, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_135CDLMATHOLD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMATHOLD, __pyx_t_3) < 0) __PYX_ERR(2, 2018, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_137CDLMORNINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMORNINGDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(2, 2052, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_139CDLMORNINGSTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2086, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMORNINGSTAR, __pyx_t_3) < 0) __PYX_ERR(2, 2086, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_141CDLONNECK, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLONNECK, __pyx_t_3) < 0) __PYX_ERR(2, 2120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_143CDLPIERCING, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLPIERCING, __pyx_t_3) < 0) __PYX_ERR(2, 2152, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_145CDLRICKSHAWMAN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLRICKSHAWMAN, __pyx_t_3) < 0) __PYX_ERR(2, 2184, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_147CDLRISEFALL3METHODS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLRISEFALL3METHODS, __pyx_t_3) < 0) __PYX_ERR(2, 2216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_149CDLSEPARATINGLINES, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSEPARATINGLINES, __pyx_t_3) < 0) __PYX_ERR(2, 2248, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_151CDLSHOOTINGSTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSHOOTINGSTAR, __pyx_t_3) < 0) __PYX_ERR(2, 2280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_153CDLSHORTLINE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSHORTLINE, __pyx_t_3) < 0) __PYX_ERR(2, 2312, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_155CDLSPINNINGTOP, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSPINNINGTOP, __pyx_t_3) < 0) __PYX_ERR(2, 2344, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_157CDLSTALLEDPATTERN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSTALLEDPATTERN, __pyx_t_3) < 0) __PYX_ERR(2, 2376, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_159CDLSTICKSANDWICH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSTICKSANDWICH, __pyx_t_3) < 0) __PYX_ERR(2, 2408, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_161CDLTAKURI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTAKURI, __pyx_t_3) < 0) __PYX_ERR(2, 2440, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_163CDLTASUKIGAP, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTASUKIGAP, __pyx_t_3) < 0) __PYX_ERR(2, 2472, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_165CDLTHRUSTING, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTHRUSTING, __pyx_t_3) < 0) __PYX_ERR(2, 2504, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_167CDLTRISTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2536, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTRISTAR, __pyx_t_3) < 0) __PYX_ERR(2, 2536, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_169CDLUNIQUE3RIVER, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2568, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLUNIQUE3RIVER, __pyx_t_3) < 0) __PYX_ERR(2, 2568, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_171CDLUPSIDEGAP2CROWS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLUPSIDEGAP2CROWS, __pyx_t_3) < 0) __PYX_ERR(2, 2600, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_173CDLXSIDEGAP3METHODS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLXSIDEGAP3METHODS, __pyx_t_3) < 0) __PYX_ERR(2, 2632, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_175CEIL, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CEIL, __pyx_t_3) < 0) __PYX_ERR(2, 2664, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_177CMO, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMO, __pyx_t_3) < 0) __PYX_ERR(2, 2693, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_179CORREL, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CORREL, __pyx_t_3) < 0) __PYX_ERR(2, 2724, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_181COS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_COS, __pyx_t_3) < 0) __PYX_ERR(2, 2757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_183COSH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2786, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_COSH, __pyx_t_3) < 0) __PYX_ERR(2, 2786, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_185DEMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_DEMA, __pyx_t_3) < 0) __PYX_ERR(2, 2815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_187DIV, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_DIV, __pyx_t_3) < 0) __PYX_ERR(2, 2846, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_189DX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2877, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_DX, __pyx_t_3) < 0) __PYX_ERR(2, 2877, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_191EMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_EMA, __pyx_t_3) < 0) __PYX_ERR(2, 2910, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_193EXP, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_EXP, __pyx_t_3) < 0) __PYX_ERR(2, 2941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_195FLOOR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_FLOOR, __pyx_t_3) < 0) __PYX_ERR(2, 2970, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_197HT_DCPERIOD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 2999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_DCPERIOD, __pyx_t_3) < 0) __PYX_ERR(2, 2999, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_199HT_DCPHASE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_DCPHASE, __pyx_t_3) < 0) __PYX_ERR(2, 3028, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_201HT_PHASOR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3057, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_PHASOR, __pyx_t_3) < 0) __PYX_ERR(2, 3057, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_203HT_SINE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3089, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_SINE, __pyx_t_3) < 0) __PYX_ERR(2, 3089, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_205HT_TRENDLINE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_TRENDLINE, __pyx_t_3) < 0) __PYX_ERR(2, 3121, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_207HT_TRENDMODE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_TRENDMODE, __pyx_t_3) < 0) __PYX_ERR(2, 3150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_209KAMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_KAMA, __pyx_t_3) < 0) __PYX_ERR(2, 3179, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_211LINEARREG, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG, __pyx_t_3) < 0) __PYX_ERR(2, 3210, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_213LINEARREG_ANGLE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_ANGLE, __pyx_t_3) < 0) __PYX_ERR(2, 3241, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_215LINEARREG_INTERCEPT, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_INTERCEPT, __pyx_t_3) < 0) __PYX_ERR(2, 3272, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_217LINEARREG_SLOPE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_SLOPE, __pyx_t_3) < 0) __PYX_ERR(2, 3303, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_219LN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_LN, __pyx_t_3) < 0) __PYX_ERR(2, 3334, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_221LOG10, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOG10, __pyx_t_3) < 0) __PYX_ERR(2, 3363, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_223MA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA, __pyx_t_3) < 0) __PYX_ERR(2, 3392, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_225MACD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACD, __pyx_t_3) < 0) __PYX_ERR(2, 3424, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_227MACDEXT, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACDEXT, __pyx_t_3) < 0) __PYX_ERR(2, 3463, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_229MACDFIX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACDFIX, __pyx_t_3) < 0) __PYX_ERR(2, 3505, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_231MAMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAMA, __pyx_t_3) < 0) __PYX_ERR(2, 3542, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_233MAVP, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAVP, __pyx_t_3) < 0) __PYX_ERR(2, 3577, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_235MAX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAX, __pyx_t_3) < 0) __PYX_ERR(2, 3612, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_237MAXINDEX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3643, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAXINDEX, __pyx_t_3) < 0) __PYX_ERR(2, 3643, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_239MEDPRICE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MEDPRICE, __pyx_t_3) < 0) __PYX_ERR(2, 3677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_241MFI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MFI, __pyx_t_3) < 0) __PYX_ERR(2, 3707, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_243MIDPOINT, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIDPOINT, __pyx_t_3) < 0) __PYX_ERR(2, 3741, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_245MIDPRICE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIDPRICE, __pyx_t_3) < 0) __PYX_ERR(2, 3772, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_247MIN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIN, __pyx_t_3) < 0) __PYX_ERR(2, 3804, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_249MININDEX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MININDEX, __pyx_t_3) < 0) __PYX_ERR(2, 3835, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_251MINMAX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINMAX, __pyx_t_3) < 0) __PYX_ERR(2, 3869, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_253MINMAXINDEX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3903, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINMAXINDEX, __pyx_t_3) < 0) __PYX_ERR(2, 3903, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_255MINUS_DI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINUS_DI, __pyx_t_3) < 0) __PYX_ERR(2, 3943, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_257MINUS_DM, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3976, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINUS_DM, __pyx_t_3) < 0) __PYX_ERR(2, 3976, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_259MOM, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4008, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MOM, __pyx_t_3) < 0) __PYX_ERR(2, 4008, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_261MULT, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4039, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MULT, __pyx_t_3) < 0) __PYX_ERR(2, 4039, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_263NATR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_NATR, __pyx_t_3) < 0) __PYX_ERR(2, 4070, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_265OBV, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_OBV, __pyx_t_3) < 0) __PYX_ERR(2, 4103, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_267PLUS_DI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_PLUS_DI, __pyx_t_3) < 0) __PYX_ERR(2, 4134, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_269PLUS_DM, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_PLUS_DM, __pyx_t_3) < 0) __PYX_ERR(2, 4167, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_271PPO, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_PPO, __pyx_t_3) < 0) __PYX_ERR(2, 4199, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_273ROC, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROC, __pyx_t_3) < 0) __PYX_ERR(2, 4232, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_275ROCP, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCP, __pyx_t_3) < 0) __PYX_ERR(2, 4263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_277ROCR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCR, __pyx_t_3) < 0) __PYX_ERR(2, 4294, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_279ROCR100, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCR100, __pyx_t_3) < 0) __PYX_ERR(2, 4325, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_281RSI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_RSI, __pyx_t_3) < 0) __PYX_ERR(2, 4356, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_283SAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_SAR, __pyx_t_3) < 0) __PYX_ERR(2, 4387, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_285SAREXT, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_SAREXT, __pyx_t_3) < 0) __PYX_ERR(2, 4420, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_287SIN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_SIN, __pyx_t_3) < 0) __PYX_ERR(2, 4459, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_289SINH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_SINH, __pyx_t_3) < 0) __PYX_ERR(2, 4488, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_291SMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_SMA, __pyx_t_3) < 0) __PYX_ERR(2, 4517, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_293SQRT, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_SQRT, __pyx_t_3) < 0) __PYX_ERR(2, 4548, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_295STDDEV, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_STDDEV, __pyx_t_3) < 0) __PYX_ERR(2, 4577, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_297STOCH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCH, __pyx_t_3) < 0) __PYX_ERR(2, 4609, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_299STOCHF, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCHF, __pyx_t_3) < 0) __PYX_ERR(2, 4649, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_301STOCHRSI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCHRSI, __pyx_t_3) < 0) __PYX_ERR(2, 4687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_303SUB, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_SUB, __pyx_t_3) < 0) __PYX_ERR(2, 4724, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_305SUM, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_SUM, __pyx_t_3) < 0) __PYX_ERR(2, 4755, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_307T3, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4786, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_T3, __pyx_t_3) < 0) __PYX_ERR(2, 4786, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_309TAN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TAN, __pyx_t_3) < 0) __PYX_ERR(2, 4818, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_311TANH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TANH, __pyx_t_3) < 0) __PYX_ERR(2, 4847, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_313TEMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TEMA, __pyx_t_3) < 0) __PYX_ERR(2, 4876, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_315TRANGE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TRANGE, __pyx_t_3) < 0) __PYX_ERR(2, 4907, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_317TRIMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TRIMA, __pyx_t_3) < 0) __PYX_ERR(2, 4938, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_319TRIX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 4969, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TRIX, __pyx_t_3) < 0) __PYX_ERR(2, 4969, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_321TSF, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TSF, __pyx_t_3) < 0) __PYX_ERR(2, 5000, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_323TYPPRICE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TYPPRICE, __pyx_t_3) < 0) __PYX_ERR(2, 5031, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_325ULTOSC, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5062, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ULTOSC, __pyx_t_3) < 0) __PYX_ERR(2, 5062, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_327VAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_VAR, __pyx_t_3) < 0) __PYX_ERR(2, 5097, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_329WCLPRICE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_WCLPRICE, __pyx_t_3) < 0) __PYX_ERR(2, 5129, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_331WILLR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_WILLR, __pyx_t_3) < 0) __PYX_ERR(2, 5160, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_333WMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_WMA, __pyx_t_3) < 0) __PYX_ERR(2, 5193, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = PyList_New(158); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_n_s_ACOS);
  __Pyx_GIVEREF(__pyx_n_s_ACOS);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_ACOS);
  __Pyx_INCREF(__pyx_n_s_AD);
  __Pyx_GIVEREF(__pyx_n_s_AD);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_s_AD);
  __Pyx_INCREF(__pyx_n_s_ADD);
  __Pyx_GIVEREF(__pyx_n_s_ADD);
  PyList_SET_ITEM(__pyx_t_3, 2, __pyx_n_s_ADD);
  __Pyx_INCREF(__pyx_n_s_ADOSC);
  __Pyx_GIVEREF(__pyx_n_s_ADOSC);
  PyList_SET_ITEM(__pyx_t_3, 3, __pyx_n_s_ADOSC);
  __Pyx_INCREF(__pyx_n_s_ADX);
  __Pyx_GIVEREF(__pyx_n_s_ADX);
  PyList_SET_ITEM(__pyx_t_3, 4, __pyx_n_s_ADX);
  __Pyx_INCREF(__pyx_n_s_ADXR);
  __Pyx_GIVEREF(__pyx_n_s_ADXR);
  PyList_SET_ITEM(__pyx_t_3, 5, __pyx_n_s_ADXR);
  __Pyx_INCREF(__pyx_n_s_APO);
  __Pyx_GIVEREF(__pyx_n_s_APO);
  PyList_SET_ITEM(__pyx_t_3, 6, __pyx_n_s_APO);
  __Pyx_INCREF(__pyx_n_s_AROON);
  __Pyx_GIVEREF(__pyx_n_s_AROON);
  PyList_SET_ITEM(__pyx_t_3, 7, __pyx_n_s_AROON);
  __Pyx_INCREF(__pyx_n_s_AROONOSC);
  __Pyx_GIVEREF(__pyx_n_s_AROONOSC);
  PyList_SET_ITEM(__pyx_t_3, 8, __pyx_n_s_AROONOSC);
  __Pyx_INCREF(__pyx_n_s_ASIN);
  __Pyx_GIVEREF(__pyx_n_s_ASIN);
  PyList_SET_ITEM(__pyx_t_3, 9, __pyx_n_s_ASIN);
  __Pyx_INCREF(__pyx_n_s_ATAN);
  __Pyx_GIVEREF(__pyx_n_s_ATAN);
  PyList_SET_ITEM(__pyx_t_3, 10, __pyx_n_s_ATAN);
  __Pyx_INCREF(__pyx_n_s_ATR);
  __Pyx_GIVEREF(__pyx_n_s_ATR);
  PyList_SET_ITEM(__pyx_t_3, 11, __pyx_n_s_ATR);
  __Pyx_INCREF(__pyx_n_s_AVGPRICE);
  __Pyx_GIVEREF(__pyx_n_s_AVGPRICE);
  PyList_SET_ITEM(__pyx_t_3, 12, __pyx_n_s_AVGPRICE);
  __Pyx_INCREF(__pyx_n_s_BBANDS);
  __Pyx_GIVEREF(__pyx_n_s_BBANDS);
  PyList_SET_ITEM(__pyx_t_3, 13, __pyx_n_s_BBANDS);
  __Pyx_INCREF(__pyx_n_s_BETA);
  __Pyx_GIVEREF(__pyx_n_s_BETA);
  PyList_SET_ITEM(__pyx_t_3, 14, __pyx_n_s_BETA);
  __Pyx_INCREF(__pyx_n_s_BOP);
  __Pyx_GIVEREF(__pyx_n_s_BOP);
  PyList_SET_ITEM(__pyx_t_3, 15, __pyx_n_s_BOP);
  __Pyx_INCREF(__pyx_n_s_CCI);
  __Pyx_GIVEREF(__pyx_n_s_CCI);
  PyList_SET_ITEM(__pyx_t_3, 16, __pyx_n_s_CCI);
  __Pyx_INCREF(__pyx_n_s_CDL2CROWS);
  __Pyx_GIVEREF(__pyx_n_s_CDL2CROWS);
  PyList_SET_ITEM(__pyx_t_3, 17, __pyx_n_s_CDL2CROWS);
  __Pyx_INCREF(__pyx_n_s_CDL3BLACKCROWS);
  __Pyx_GIVEREF(__pyx_n_s_CDL3BLACKCROWS);
  PyList_SET_ITEM(__pyx_t_3, 18, __pyx_n_s_CDL3BLACKCROWS);
  __Pyx_INCREF(__pyx_n_s_CDL3INSIDE);
  __Pyx_GIVEREF(__pyx_n_s_CDL3INSIDE);
  PyList_SET_ITEM(__pyx_t_3, 19, __pyx_n_s_CDL3INSIDE);
  __Pyx_INCREF(__pyx_n_s_CDL3LINESTRIKE);
  __Pyx_GIVEREF(__pyx_n_s_CDL3LINESTRIKE);
  PyList_SET_ITEM(__pyx_t_3, 20, __pyx_n_s_CDL3LINESTRIKE);
  __Pyx_INCREF(__pyx_n_s_CDL3OUTSIDE);
  __Pyx_GIVEREF(__pyx_n_s_CDL3OUTSIDE);
  PyList_SET_ITEM(__pyx_t_3, 21, __pyx_n_s_CDL3OUTSIDE);
  __Pyx_INCREF(__pyx_n_s_CDL3STARSINSOUTH);
  __Pyx_GIVEREF(__pyx_n_s_CDL3STARSINSOUTH);
  PyList_SET_ITEM(__pyx_t_3, 22, __pyx_n_s_CDL3STARSINSOUTH);
  __Pyx_INCREF(__pyx_n_s_CDL3WHITESOLDIERS);
  __Pyx_GIVEREF(__pyx_n_s_CDL3WHITESOLDIERS);
  PyList_SET_ITEM(__pyx_t_3, 23, __pyx_n_s_CDL3WHITESOLDIERS);
  __Pyx_INCREF(__pyx_n_s_CDLABANDONEDBABY);
  __Pyx_GIVEREF(__pyx_n_s_CDLABANDONEDBABY);
  PyList_SET_ITEM(__pyx_t_3, 24, __pyx_n_s_CDLABANDONEDBABY);
  __Pyx_INCREF(__pyx_n_s_CDLADVANCEBLOCK);
  __Pyx_GIVEREF(__pyx_n_s_CDLADVANCEBLOCK);
  PyList_SET_ITEM(__pyx_t_3, 25, __pyx_n_s_CDLADVANCEBLOCK);
  __Pyx_INCREF(__pyx_n_s_CDLBELTHOLD);
  __Pyx_GIVEREF(__pyx_n_s_CDLBELTHOLD);
  PyList_SET_ITEM(__pyx_t_3, 26, __pyx_n_s_CDLBELTHOLD);
  __Pyx_INCREF(__pyx_n_s_CDLBREAKAWAY);
  __Pyx_GIVEREF(__pyx_n_s_CDLBREAKAWAY);
  PyList_SET_ITEM(__pyx_t_3, 27, __pyx_n_s_CDLBREAKAWAY);
  __Pyx_INCREF(__pyx_n_s_CDLCLOSINGMARUBOZU);
  __Pyx_GIVEREF(__pyx_n_s_CDLCLOSINGMARUBOZU);
  PyList_SET_ITEM(__pyx_t_3, 28, __pyx_n_s_CDLCLOSINGMARUBOZU);
  __Pyx_INCREF(__pyx_n_s_CDLCONCEALBABYSWALL);
  __Pyx_GIVEREF(__pyx_n_s_CDLCONCEALBABYSWALL);
  PyList_SET_ITEM(__pyx_t_3, 29, __pyx_n_s_CDLCONCEALBABYSWALL);
  __Pyx_INCREF(__pyx_n_s_CDLCOUNTERATTACK);
  __Pyx_GIVEREF(__pyx_n_s_CDLCOUNTERATTACK);
  PyList_SET_ITEM(__pyx_t_3, 30, __pyx_n_s_CDLCOUNTERATTACK);
  __Pyx_INCREF(__pyx_n_s_CDLDARKCLOUDCOVER);
  __Pyx_GIVEREF(__pyx_n_s_CDLDARKCLOUDCOVER);
  PyList_SET_ITEM(__pyx_t_3, 31, __pyx_n_s_CDLDARKCLOUDCOVER);
  __Pyx_INCREF(__pyx_n_s_CDLDOJI);
  __Pyx_GIVEREF(__pyx_n_s_CDLDOJI);
  PyList_SET_ITEM(__pyx_t_3, 32, __pyx_n_s_CDLDOJI);
  __Pyx_INCREF(__pyx_n_s_CDLDOJISTAR);
  __Pyx_GIVEREF(__pyx_n_s_CDLDOJISTAR);
  PyList_SET_ITEM(__pyx_t_3, 33, __pyx_n_s_CDLDOJISTAR);
  __Pyx_INCREF(__pyx_n_s_CDLDRAGONFLYDOJI);
  __Pyx_GIVEREF(__pyx_n_s_CDLDRAGONFLYDOJI);
  PyList_SET_ITEM(__pyx_t_3, 34, __pyx_n_s_CDLDRAGONFLYDOJI);
  __Pyx_INCREF(__pyx_n_s_CDLENGULFING);
  __Pyx_GIVEREF(__pyx_n_s_CDLENGULFING);
  PyList_SET_ITEM(__pyx_t_3, 35, __pyx_n_s_CDLENGULFING);
  __Pyx_INCREF(__pyx_n_s_CDLEVENINGDOJISTAR);
  __Pyx_GIVEREF(__pyx_n_s_CDLEVENINGDOJISTAR);
  PyList_SET_ITEM(__pyx_t_3, 36, __pyx_n_s_CDLEVENINGDOJISTAR);
  __Pyx_INCREF(__pyx_n_s_CDLEVENINGSTAR);
  __Pyx_GIVEREF(__pyx_n_s_CDLEVENINGSTAR);
  PyList_SET_ITEM(__pyx_t_3, 37, __pyx_n_s_CDLEVENINGSTAR);
  __Pyx_INCREF(__pyx_n_s_CDLGAPSIDESIDEWHITE);
  __Pyx_GIVEREF(__pyx_n_s_CDLGAPSIDESIDEWHITE);
  PyList_SET_ITEM(__pyx_t_3, 38, __pyx_n_s_CDLGAPSIDESIDEWHITE);
  __Pyx_INCREF(__pyx_n_s_CDLGRAVESTONEDOJI);
  __Pyx_GIVEREF(__pyx_n_s_CDLGRAVESTONEDOJI);
  PyList_SET_ITEM(__pyx_t_3, 39, __pyx_n_s_CDLGRAVESTONEDOJI);
  __Pyx_INCREF(__pyx_n_s_CDLHAMMER);
  __Pyx_GIVEREF(__pyx_n_s_CDLHAMMER);
  PyList_SET_ITEM(__pyx_t_3, 40, __pyx_n_s_CDLHAMMER);
  __Pyx_INCREF(__pyx_n_s_CDLHANGINGMAN);
  __Pyx_GIVEREF(__pyx_n_s_CDLHANGINGMAN);
  PyList_SET_ITEM(__pyx_t_3, 41, __pyx_n_s_CDLHANGINGMAN);
  __Pyx_INCREF(__pyx_n_s_CDLHARAMI);
  __Pyx_GIVEREF(__pyx_n_s_CDLHARAMI);
  PyList_SET_ITEM(__pyx_t_3, 42, __pyx_n_s_CDLHARAMI);
  __Pyx_INCREF(__pyx_n_s_CDLHARAMICROSS);
  __Pyx_GIVEREF(__pyx_n_s_CDLHARAMICROSS);
  PyList_SET_ITEM(__pyx_t_3, 43, __pyx_n_s_CDLHARAMICROSS);
  __Pyx_INCREF(__pyx_n_s_CDLHIGHWAVE);
  __Pyx_GIVEREF(__pyx_n_s_CDLHIGHWAVE);
  PyList_SET_ITEM(__pyx_t_3, 44, __pyx_n_s_CDLHIGHWAVE);
  __Pyx_INCREF(__pyx_n_s_CDLHIKKAKE);
  __Pyx_GIVEREF(__pyx_n_s_CDLHIKKAKE);
  PyList_SET_ITEM(__pyx_t_3, 45, __pyx_n_s_CDLHIKKAKE);
  __Pyx_INCREF(__pyx_n_s_CDLHIKKAKEMOD);
  __Pyx_GIVEREF(__pyx_n_s_CDLHIKKAKEMOD);
  PyList_SET_ITEM(__pyx_t_3, 46, __pyx_n_s_CDLHIKKAKEMOD);
  __Pyx_INCREF(__pyx_n_s_CDLHOMINGPIGEON);
  __Pyx_GIVEREF(__pyx_n_s_CDLHOMINGPIGEON);
  PyList_SET_ITEM(__pyx_t_3, 47, __pyx_n_s_CDLHOMINGPIGEON);
  __Pyx_INCREF(__pyx_n_s_CDLIDENTICAL3CROWS);
  __Pyx_GIVEREF(__pyx_n_s_CDLIDENTICAL3CROWS);
  PyList_SET_ITEM(__pyx_t_3, 48, __pyx_n_s_CDLIDENTICAL3CROWS);
  __Pyx_INCREF(__pyx_n_s_CDLINNECK);
  __Pyx_GIVEREF(__pyx_n_s_CDLINNECK);
  PyList_SET_ITEM(__pyx_t_3, 49, __pyx_n_s_CDLINNECK);
  __Pyx_INCREF(__pyx_n_s_CDLINVERTEDHAMMER);
  __Pyx_GIVEREF(__pyx_n_s_CDLINVERTEDHAMMER);
  PyList_SET_ITEM(__pyx_t_3, 50, __pyx_n_s_CDLINVERTEDHAMMER);
  __Pyx_INCREF(__pyx_n_s_CDLKICKING);
  __Pyx_GIVEREF(__pyx_n_s_CDLKICKING);
  PyList_SET_ITEM(__pyx_t_3, 51, __pyx_n_s_CDLKICKING);
  __Pyx_INCREF(__pyx_n_s_CDLKICKINGBYLENGTH);
  __Pyx_GIVEREF(__pyx_n_s_CDLKICKINGBYLENGTH);
  PyList_SET_ITEM(__pyx_t_3, 52, __pyx_n_s_CDLKICKINGBYLENGTH);
  __Pyx_INCREF(__pyx_n_s_CDLLADDERBOTTOM);
  __Pyx_GIVEREF(__pyx_n_s_CDLLADDERBOTTOM);
  PyList_SET_ITEM(__pyx_t_3, 53, __pyx_n_s_CDLLADDERBOTTOM);
  __Pyx_INCREF(__pyx_n_s_CDLLONGLEGGEDDOJI);
  __Pyx_GIVEREF(__pyx_n_s_CDLLONGLEGGEDDOJI);
  PyList_SET_ITEM(__pyx_t_3, 54, __pyx_n_s_CDLLONGLEGGEDDOJI);
  __Pyx_INCREF(__pyx_n_s_CDLLONGLINE);
  __Pyx_GIVEREF(__pyx_n_s_CDLLONGLINE);
  PyList_SET_ITEM(__pyx_t_3, 55, __pyx_n_s_CDLLONGLINE);
  __Pyx_INCREF(__pyx_n_s_CDLMARUBOZU);
  __Pyx_GIVEREF(__pyx_n_s_CDLMARUBOZU);
  PyList_SET_ITEM(__pyx_t_3, 56, __pyx_n_s_CDLMARUBOZU);
  __Pyx_INCREF(__pyx_n_s_CDLMATCHINGLOW);
  __Pyx_GIVEREF(__pyx_n_s_CDLMATCHINGLOW);
  PyList_SET_ITEM(__pyx_t_3, 57, __pyx_n_s_CDLMATCHINGLOW);
  __Pyx_INCREF(__pyx_n_s_CDLMATHOLD);
  __Pyx_GIVEREF(__pyx_n_s_CDLMATHOLD);
  PyList_SET_ITEM(__pyx_t_3, 58, __pyx_n_s_CDLMATHOLD);
  __Pyx_INCREF(__pyx_n_s_CDLMORNINGDOJISTAR);
  __Pyx_GIVEREF(__pyx_n_s_CDLMORNINGDOJISTAR);
  PyList_SET_ITEM(__pyx_t_3, 59, __pyx_n_s_CDLMORNINGDOJISTAR);
  __Pyx_INCREF(__pyx_n_s_CDLMORNINGSTAR);
  __Pyx_GIVEREF(__pyx_n_s_CDLMORNINGSTAR);
  PyList_SET_ITEM(__pyx_t_3, 60, __pyx_n_s_CDLMORNINGSTAR);
  __Pyx_INCREF(__pyx_n_s_CDLONNECK);
  __Pyx_GIVEREF(__pyx_n_s_CDLONNECK);
  PyList_SET_ITEM(__pyx_t_3, 61, __pyx_n_s_CDLONNECK);
  __Pyx_INCREF(__pyx_n_s_CDLPIERCING);
  __Pyx_GIVEREF(__pyx_n_s_CDLPIERCING);
  PyList_SET_ITEM(__pyx_t_3, 62, __pyx_n_s_CDLPIERCING);
  __Pyx_INCREF(__pyx_n_s_CDLRICKSHAWMAN);
  __Pyx_GIVEREF(__pyx_n_s_CDLRICKSHAWMAN);
  PyList_SET_ITEM(__pyx_t_3, 63, __pyx_n_s_CDLRICKSHAWMAN);
  __Pyx_INCREF(__pyx_n_s_CDLRISEFALL3METHODS);
  __Pyx_GIVEREF(__pyx_n_s_CDLRISEFALL3METHODS);
  PyList_SET_ITEM(__pyx_t_3, 64, __pyx_n_s_CDLRISEFALL3METHODS);
  __Pyx_INCREF(__pyx_n_s_CDLSEPARATINGLINES);
  __Pyx_GIVEREF(__pyx_n_s_CDLSEPARATINGLINES);
  PyList_SET_ITEM(__pyx_t_3, 65, __pyx_n_s_CDLSEPARATINGLINES);
  __Pyx_INCREF(__pyx_n_s_CDLSHOOTINGSTAR);
  __Pyx_GIVEREF(__pyx_n_s_CDLSHOOTINGSTAR);
  PyList_SET_ITEM(__pyx_t_3, 66, __pyx_n_s_CDLSHOOTINGSTAR);
  __Pyx_INCREF(__pyx_n_s_CDLSHORTLINE);
  __Pyx_GIVEREF(__pyx_n_s_CDLSHORTLINE);
  PyList_SET_ITEM(__pyx_t_3, 67, __pyx_n_s_CDLSHORTLINE);
  __Pyx_INCREF(__pyx_n_s_CDLSPINNINGTOP);
  __Pyx_GIVEREF(__pyx_n_s_CDLSPINNINGTOP);
  PyList_SET_ITEM(__pyx_t_3, 68, __pyx_n_s_CDLSPINNINGTOP);
  __Pyx_INCREF(__pyx_n_s_CDLSTALLEDPATTERN);
  __Pyx_GIVEREF(__pyx_n_s_CDLSTALLEDPATTERN);
  PyList_SET_ITEM(__pyx_t_3, 69, __pyx_n_s_CDLSTALLEDPATTERN);
  __Pyx_INCREF(__pyx_n_s_CDLSTICKSANDWICH);
  __Pyx_GIVEREF(__pyx_n_s_CDLSTICKSANDWICH);
  PyList_SET_ITEM(__pyx_t_3, 70, __pyx_n_s_CDLSTICKSANDWICH);
  __Pyx_INCREF(__pyx_n_s_CDLTAKURI);
  __Pyx_GIVEREF(__pyx_n_s_CDLTAKURI);
  PyList_SET_ITEM(__pyx_t_3, 71, __pyx_n_s_CDLTAKURI);
  __Pyx_INCREF(__pyx_n_s_CDLTASUKIGAP);
  __Pyx_GIVEREF(__pyx_n_s_CDLTASUKIGAP);
  PyList_SET_ITEM(__pyx_t_3, 72, __pyx_n_s_CDLTASUKIGAP);
  __Pyx_INCREF(__pyx_n_s_CDLTHRUSTING);
  __Pyx_GIVEREF(__pyx_n_s_CDLTHRUSTING);
  PyList_SET_ITEM(__pyx_t_3, 73, __pyx_n_s_CDLTHRUSTING);
  __Pyx_INCREF(__pyx_n_s_CDLTRISTAR);
  __Pyx_GIVEREF(__pyx_n_s_CDLTRISTAR);
  PyList_SET_ITEM(__pyx_t_3, 74, __pyx_n_s_CDLTRISTAR);
  __Pyx_INCREF(__pyx_n_s_CDLUNIQUE3RIVER);
  __Pyx_GIVEREF(__pyx_n_s_CDLUNIQUE3RIVER);
  PyList_SET_ITEM(__pyx_t_3, 75, __pyx_n_s_CDLUNIQUE3RIVER);
  __Pyx_INCREF(__pyx_n_s_CDLUPSIDEGAP2CROWS);
  __Pyx_GIVEREF(__pyx_n_s_CDLUPSIDEGAP2CROWS);
  PyList_SET_ITEM(__pyx_t_3, 76, __pyx_n_s_CDLUPSIDEGAP2CROWS);
  __Pyx_INCREF(__pyx_n_s_CDLXSIDEGAP3METHODS);
  __Pyx_GIVEREF(__pyx_n_s_CDLXSIDEGAP3METHODS);
  PyList_SET_ITEM(__pyx_t_3, 77, __pyx_n_s_CDLXSIDEGAP3METHODS);
  __Pyx_INCREF(__pyx_n_s_CEIL);
  __Pyx_GIVEREF(__pyx_n_s_CEIL);
  PyList_SET_ITEM(__pyx_t_3, 78, __pyx_n_s_CEIL);
  __Pyx_INCREF(__pyx_n_s_CMO);
  __Pyx_GIVEREF(__pyx_n_s_CMO);
  PyList_SET_ITEM(__pyx_t_3, 79, __pyx_n_s_CMO);
  __Pyx_INCREF(__pyx_n_s_CORREL);
  __Pyx_GIVEREF(__pyx_n_s_CORREL);
  PyList_SET_ITEM(__pyx_t_3, 80, __pyx_n_s_CORREL);
  __Pyx_INCREF(__pyx_n_s_COS);
  __Pyx_GIVEREF(__pyx_n_s_COS);
  PyList_SET_ITEM(__pyx_t_3, 81, __pyx_n_s_COS);
  __Pyx_INCREF(__pyx_n_s_COSH);
  __Pyx_GIVEREF(__pyx_n_s_COSH);
  PyList_SET_ITEM(__pyx_t_3, 82, __pyx_n_s_COSH);
  __Pyx_INCREF(__pyx_n_s_DEMA);
  __Pyx_GIVEREF(__pyx_n_s_DEMA);
  PyList_SET_ITEM(__pyx_t_3, 83, __pyx_n_s_DEMA);
  __Pyx_INCREF(__pyx_n_s_DIV);
  __Pyx_GIVEREF(__pyx_n_s_DIV);
  PyList_SET_ITEM(__pyx_t_3, 84, __pyx_n_s_DIV);
  __Pyx_INCREF(__pyx_n_s_DX);
  __Pyx_GIVEREF(__pyx_n_s_DX);
  PyList_SET_ITEM(__pyx_t_3, 85, __pyx_n_s_DX);
  __Pyx_INCREF(__pyx_n_s_EMA);
  __Pyx_GIVEREF(__pyx_n_s_EMA);
  PyList_SET_ITEM(__pyx_t_3, 86, __pyx_n_s_EMA);
  __Pyx_INCREF(__pyx_n_s_EXP);
  __Pyx_GIVEREF(__pyx_n_s_EXP);
  PyList_SET_ITEM(__pyx_t_3, 87, __pyx_n_s_EXP);
  __Pyx_INCREF(__pyx_n_s_FLOOR);
  __Pyx_GIVEREF(__pyx_n_s_FLOOR);
  PyList_SET_ITEM(__pyx_t_3, 88, __pyx_n_s_FLOOR);
  __Pyx_INCREF(__pyx_n_s_HT_DCPERIOD);
  __Pyx_GIVEREF(__pyx_n_s_HT_DCPERIOD);
  PyList_SET_ITEM(__pyx_t_3, 89, __pyx_n_s_HT_DCPERIOD);
  __Pyx_INCREF(__pyx_n_s_HT_DCPHASE);
  __Pyx_GIVEREF(__pyx_n_s_HT_DCPHASE);
  PyList_SET_ITEM(__pyx_t_3, 90, __pyx_n_s_HT_DCPHASE);
  __Pyx_INCREF(__pyx_n_s_HT_PHASOR);
  __Pyx_GIVEREF(__pyx_n_s_HT_PHASOR);
  PyList_SET_ITEM(__pyx_t_3, 91, __pyx_n_s_HT_PHASOR);
  __Pyx_INCREF(__pyx_n_s_HT_SINE);
  __Pyx_GIVEREF(__pyx_n_s_HT_SINE);
  PyList_SET_ITEM(__pyx_t_3, 92, __pyx_n_s_HT_SINE);
  __Pyx_INCREF(__pyx_n_s_HT_TRENDLINE);
  __Pyx_GIVEREF(__pyx_n_s_HT_TRENDLINE);
  PyList_SET_ITEM(__pyx_t_3, 93, __pyx_n_s_HT_TRENDLINE);
  __Pyx_INCREF(__pyx_n_s_HT_TRENDMODE);
  __Pyx_GIVEREF(__pyx_n_s_HT_TRENDMODE);
  PyList_SET_ITEM(__pyx_t_3, 94, __pyx_n_s_HT_TRENDMODE);
  __Pyx_INCREF(__pyx_n_s_KAMA);
  __Pyx_GIVEREF(__pyx_n_s_KAMA);
  PyList_SET_ITEM(__pyx_t_3, 95, __pyx_n_s_KAMA);
  __Pyx_INCREF(__pyx_n_s_LINEARREG);
  __Pyx_GIVEREF(__pyx_n_s_LINEARREG);
  PyList_SET_ITEM(__pyx_t_3, 96, __pyx_n_s_LINEARREG);
  __Pyx_INCREF(__pyx_n_s_LINEARREG_ANGLE);
  __Pyx_GIVEREF(__pyx_n_s_LINEARREG_ANGLE);
  PyList_SET_ITEM(__pyx_t_3, 97, __pyx_n_s_LINEARREG_ANGLE);
  __Pyx_INCREF(__pyx_n_s_LINEARREG_INTERCEPT);
  __Pyx_GIVEREF(__pyx_n_s_LINEARREG_INTERCEPT);
  PyList_SET_ITEM(__pyx_t_3, 98, __pyx_n_s_LINEARREG_INTERCEPT);
  __Pyx_INCREF(__pyx_n_s_LINEARREG_SLOPE);
  __Pyx_GIVEREF(__pyx_n_s_LINEARREG_SLOPE);
  PyList_SET_ITEM(__pyx_t_3, 99, __pyx_n_s_LINEARREG_SLOPE);
  __Pyx_INCREF(__pyx_n_s_LN);
  __Pyx_GIVEREF(__pyx_n_s_LN);
  PyList_SET_ITEM(__pyx_t_3, 100, __pyx_n_s_LN);
  __Pyx_INCREF(__pyx_n_s_LOG10);
  __Pyx_GIVEREF(__pyx_n_s_LOG10);
  PyList_SET_ITEM(__pyx_t_3, 101, __pyx_n_s_LOG10);
  __Pyx_INCREF(__pyx_n_s_MA);
  __Pyx_GIVEREF(__pyx_n_s_MA);
  PyList_SET_ITEM(__pyx_t_3, 102, __pyx_n_s_MA);
  __Pyx_INCREF(__pyx_n_s_MACD);
  __Pyx_GIVEREF(__pyx_n_s_MACD);
  PyList_SET_ITEM(__pyx_t_3, 103, __pyx_n_s_MACD);
  __Pyx_INCREF(__pyx_n_s_MACDEXT);
  __Pyx_GIVEREF(__pyx_n_s_MACDEXT);
  PyList_SET_ITEM(__pyx_t_3, 104, __pyx_n_s_MACDEXT);
  __Pyx_INCREF(__pyx_n_s_MACDFIX);
  __Pyx_GIVEREF(__pyx_n_s_MACDFIX);
  PyList_SET_ITEM(__pyx_t_3, 105, __pyx_n_s_MACDFIX);
  __Pyx_INCREF(__pyx_n_s_MAMA);
  __Pyx_GIVEREF(__pyx_n_s_MAMA);
  PyList_SET_ITEM(__pyx_t_3, 106, __pyx_n_s_MAMA);
  __Pyx_INCREF(__pyx_n_s_MAVP);
  __Pyx_GIVEREF(__pyx_n_s_MAVP);
  PyList_SET_ITEM(__pyx_t_3, 107, __pyx_n_s_MAVP);
  __Pyx_INCREF(__pyx_n_s_MAX);
  __Pyx_GIVEREF(__pyx_n_s_MAX);
  PyList_SET_ITEM(__pyx_t_3, 108, __pyx_n_s_MAX);
  __Pyx_INCREF(__pyx_n_s_MAXINDEX);
  __Pyx_GIVEREF(__pyx_n_s_MAXINDEX);
  PyList_SET_ITEM(__pyx_t_3, 109, __pyx_n_s_MAXINDEX);
  __Pyx_INCREF(__pyx_n_s_MEDPRICE);
  __Pyx_GIVEREF(__pyx_n_s_MEDPRICE);
  PyList_SET_ITEM(__pyx_t_3, 110, __pyx_n_s_MEDPRICE);
  __Pyx_INCREF(__pyx_n_s_MFI);
  __Pyx_GIVEREF(__pyx_n_s_MFI);
  PyList_SET_ITEM(__pyx_t_3, 111, __pyx_n_s_MFI);
  __Pyx_INCREF(__pyx_n_s_MIDPOINT);
  __Pyx_GIVEREF(__pyx_n_s_MIDPOINT);
  PyList_SET_ITEM(__pyx_t_3, 112, __pyx_n_s_MIDPOINT);
  __Pyx_INCREF(__pyx_n_s_MIDPRICE);
  __Pyx_GIVEREF(__pyx_n_s_MIDPRICE);
  PyList_SET_ITEM(__pyx_t_3, 113, __pyx_n_s_MIDPRICE);
  __Pyx_INCREF(__pyx_n_s_MIN);
  __Pyx_GIVEREF(__pyx_n_s_MIN);
  PyList_SET_ITEM(__pyx_t_3, 114, __pyx_n_s_MIN);
  __Pyx_INCREF(__pyx_n_s_MININDEX);
  __Pyx_GIVEREF(__pyx_n_s_MININDEX);
  PyList_SET_ITEM(__pyx_t_3, 115, __pyx_n_s_MININDEX);
  __Pyx_INCREF(__pyx_n_s_MINMAX);
  __Pyx_GIVEREF(__pyx_n_s_MINMAX);
  PyList_SET_ITEM(__pyx_t_3, 116, __pyx_n_s_MINMAX);
  __Pyx_INCREF(__pyx_n_s_MINMAXINDEX);
  __Pyx_GIVEREF(__pyx_n_s_MINMAXINDEX);
  PyList_SET_ITEM(__pyx_t_3, 117, __pyx_n_s_MINMAXINDEX);
  __Pyx_INCREF(__pyx_n_s_MINUS_DI);
  __Pyx_GIVEREF(__pyx_n_s_MINUS_DI);
  PyList_SET_ITEM(__pyx_t_3, 118, __pyx_n_s_MINUS_DI);
  __Pyx_INCREF(__pyx_n_s_MINUS_DM);
  __Pyx_GIVEREF(__pyx_n_s_MINUS_DM);
  PyList_SET_ITEM(__pyx_t_3, 119, __pyx_n_s_MINUS_DM);
  __Pyx_INCREF(__pyx_n_s_MOM);
  __Pyx_GIVEREF(__pyx_n_s_MOM);
  PyList_SET_ITEM(__pyx_t_3, 120, __pyx_n_s_MOM);
  __Pyx_INCREF(__pyx_n_s_MULT);
  __Pyx_GIVEREF(__pyx_n_s_MULT);
  PyList_SET_ITEM(__pyx_t_3, 121, __pyx_n_s_MULT);
  __Pyx_INCREF(__pyx_n_s_NATR);
  __Pyx_GIVEREF(__pyx_n_s_NATR);
  PyList_SET_ITEM(__pyx_t_3, 122, __pyx_n_s_NATR);
  __Pyx_INCREF(__pyx_n_s_OBV);
  __Pyx_GIVEREF(__pyx_n_s_OBV);
  PyList_SET_ITEM(__pyx_t_3, 123, __pyx_n_s_OBV);
  __Pyx_INCREF(__pyx_n_s_PLUS_DI);
  __Pyx_GIVEREF(__pyx_n_s_PLUS_DI);
  PyList_SET_ITEM(__pyx_t_3, 124, __pyx_n_s_PLUS_DI);
  __Pyx_INCREF(__pyx_n_s_PLUS_DM);
  __Pyx_GIVEREF(__pyx_n_s_PLUS_DM);
  PyList_SET_ITEM(__pyx_t_3, 125, __pyx_n_s_PLUS_DM);
  __Pyx_INCREF(__pyx_n_s_PPO);
  __Pyx_GIVEREF(__pyx_n_s_PPO);
  PyList_SET_ITEM(__pyx_t_3, 126, __pyx_n_s_PPO);
  __Pyx_INCREF(__pyx_n_s_ROC);
  __Pyx_GIVEREF(__pyx_n_s_ROC);
  PyList_SET_ITEM(__pyx_t_3, 127, __pyx_n_s_ROC);
  __Pyx_INCREF(__pyx_n_s_ROCP);
  __Pyx_GIVEREF(__pyx_n_s_ROCP);
  PyList_SET_ITEM(__pyx_t_3, 128, __pyx_n_s_ROCP);
  __Pyx_INCREF(__pyx_n_s_ROCR);
  __Pyx_GIVEREF(__pyx_n_s_ROCR);
  PyList_SET_ITEM(__pyx_t_3, 129, __pyx_n_s_ROCR);
  __Pyx_INCREF(__pyx_n_s_ROCR100);
  __Pyx_GIVEREF(__pyx_n_s_ROCR100);
  PyList_SET_ITEM(__pyx_t_3, 130, __pyx_n_s_ROCR100);
  __Pyx_INCREF(__pyx_n_s_RSI);
  __Pyx_GIVEREF(__pyx_n_s_RSI);
  PyList_SET_ITEM(__pyx_t_3, 131, __pyx_n_s_RSI);
  __Pyx_INCREF(__pyx_n_s_SAR);
  __Pyx_GIVEREF(__pyx_n_s_SAR);
  PyList_SET_ITEM(__pyx_t_3, 132, __pyx_n_s_SAR);
  __Pyx_INCREF(__pyx_n_s_SAREXT);
  __Pyx_GIVEREF(__pyx_n_s_SAREXT);
  PyList_SET_ITEM(__pyx_t_3, 133, __pyx_n_s_SAREXT);
  __Pyx_INCREF(__pyx_n_s_SIN);
  __Pyx_GIVEREF(__pyx_n_s_SIN);
  PyList_SET_ITEM(__pyx_t_3, 134, __pyx_n_s_SIN);
  __Pyx_INCREF(__pyx_n_s_SINH);
  __Pyx_GIVEREF(__pyx_n_s_SINH);
  PyList_SET_ITEM(__pyx_t_3, 135, __pyx_n_s_SINH);
  __Pyx_INCREF(__pyx_n_s_SMA);
  __Pyx_GIVEREF(__pyx_n_s_SMA);
  PyList_SET_ITEM(__pyx_t_3, 136, __pyx_n_s_SMA);
  __Pyx_INCREF(__pyx_n_s_SQRT);
  __Pyx_GIVEREF(__pyx_n_s_SQRT);
  PyList_SET_ITEM(__pyx_t_3, 137, __pyx_n_s_SQRT);
  __Pyx_INCREF(__pyx_n_s_STDDEV);
  __Pyx_GIVEREF(__pyx_n_s_STDDEV);
  PyList_SET_ITEM(__pyx_t_3, 138, __pyx_n_s_STDDEV);
  __Pyx_INCREF(__pyx_n_s_STOCH);
  __Pyx_GIVEREF(__pyx_n_s_STOCH);
  PyList_SET_ITEM(__pyx_t_3, 139, __pyx_n_s_STOCH);
  __Pyx_INCREF(__pyx_n_s_STOCHF);
  __Pyx_GIVEREF(__pyx_n_s_STOCHF);
  PyList_SET_ITEM(__pyx_t_3, 140, __pyx_n_s_STOCHF);
  __Pyx_INCREF(__pyx_n_s_STOCHRSI);
  __Pyx_GIVEREF(__pyx_n_s_STOCHRSI);
  PyList_SET_ITEM(__pyx_t_3, 141, __pyx_n_s_STOCHRSI);
  __Pyx_INCREF(__pyx_n_s_SUB);
  __Pyx_GIVEREF(__pyx_n_s_SUB);
  PyList_SET_ITEM(__pyx_t_3, 142, __pyx_n_s_SUB);
  __Pyx_INCREF(__pyx_n_s_SUM);
  __Pyx_GIVEREF(__pyx_n_s_SUM);
  PyList_SET_ITEM(__pyx_t_3, 143, __pyx_n_s_SUM);
  __Pyx_INCREF(__pyx_n_s_T3);
  __Pyx_GIVEREF(__pyx_n_s_T3);
  PyList_SET_ITEM(__pyx_t_3, 144, __pyx_n_s_T3);
  __Pyx_INCREF(__pyx_n_s_TAN);
  __Pyx_GIVEREF(__pyx_n_s_TAN);
  PyList_SET_ITEM(__pyx_t_3, 145, __pyx_n_s_TAN);
  __Pyx_INCREF(__pyx_n_s_TANH);
  __Pyx_GIVEREF(__pyx_n_s_TANH);
  PyList_SET_ITEM(__pyx_t_3, 146, __pyx_n_s_TANH);
  __Pyx_INCREF(__pyx_n_s_TEMA);
  __Pyx_GIVEREF(__pyx_n_s_TEMA);
  PyList_SET_ITEM(__pyx_t_3, 147, __pyx_n_s_TEMA);
  __Pyx_INCREF(__pyx_n_s_TRANGE);
  __Pyx_GIVEREF(__pyx_n_s_TRANGE);
  PyList_SET_ITEM(__pyx_t_3, 148, __pyx_n_s_TRANGE);
  __Pyx_INCREF(__pyx_n_s_TRIMA);
  __Pyx_GIVEREF(__pyx_n_s_TRIMA);
  PyList_SET_ITEM(__pyx_t_3, 149, __pyx_n_s_TRIMA);
  __Pyx_INCREF(__pyx_n_s_TRIX);
  __Pyx_GIVEREF(__pyx_n_s_TRIX);
  PyList_SET_ITEM(__pyx_t_3, 150, __pyx_n_s_TRIX);
  __Pyx_INCREF(__pyx_n_s_TSF);
  __Pyx_GIVEREF(__pyx_n_s_TSF);
  PyList_SET_ITEM(__pyx_t_3, 151, __pyx_n_s_TSF);
  __Pyx_INCREF(__pyx_n_s_TYPPRICE);
  __Pyx_GIVEREF(__pyx_n_s_TYPPRICE);
  PyList_SET_ITEM(__pyx_t_3, 152, __pyx_n_s_TYPPRICE);
  __Pyx_INCREF(__pyx_n_s_ULTOSC);
  __Pyx_GIVEREF(__pyx_n_s_ULTOSC);
  PyList_SET_ITEM(__pyx_t_3, 153, __pyx_n_s_ULTOSC);
  __Pyx_INCREF(__pyx_n_s_VAR);
  __Pyx_GIVEREF(__pyx_n_s_VAR);
  PyList_SET_ITEM(__pyx_t_3, 154, __pyx_n_s_VAR);
  __Pyx_INCREF(__pyx_n_s_WCLPRICE);
  __Pyx_GIVEREF(__pyx_n_s_WCLPRICE);
  PyList_SET_ITEM(__pyx_t_3, 155, __pyx_n_s_WCLPRICE);
  __Pyx_INCREF(__pyx_n_s_WILLR);
  __Pyx_GIVEREF(__pyx_n_s_WILLR);
  PyList_SET_ITEM(__pyx_t_3, 156, __pyx_n_s_WILLR);
  __Pyx_INCREF(__pyx_n_s_WMA);
  __Pyx_GIVEREF(__pyx_n_s_WMA);
  PyList_SET_ITEM(__pyx_t_3, 157, __pyx_n_s_WMA);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_FUNCTION_NAMES, __pyx_t_3) < 0) __PYX_ERR(2, 5222, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_t_3 = __Pyx_Import(__pyx_n_s_math, 0, -1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_math, __pyx_t_3) < 0) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23);
    __Pyx_XGOTREF(__pyx_t_21);
    __Pyx_XGOTREF(__pyx_t_22);
    __Pyx_XGOTREF(__pyx_t_23);
    /*try:*/ {

      __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L10_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_n_s_OrderedDict);
      __Pyx_GIVEREF(__pyx_n_s_OrderedDict);
      PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_OrderedDict);
      __pyx_t_2 = __Pyx_Import(__pyx_n_s_collections, __pyx_t_3, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L10_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L10_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_OrderedDict, __pyx_t_3) < 0) __PYX_ERR(1, 6, __pyx_L10_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    }
    __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
    goto __pyx_L15_try_end;
    __pyx_L10_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

    __pyx_t_20 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
    if (__pyx_t_20) {
      __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(1, 7, __pyx_L12_except_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_t_1);

      __pyx_t_13 = PyList_New(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 8, __pyx_L12_except_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_INCREF(__pyx_n_s_OrderedDict);
      __Pyx_GIVEREF(__pyx_n_s_OrderedDict);
      PyList_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_OrderedDict);
      __pyx_t_16 = __Pyx_Import(__pyx_n_s_ordereddict, __pyx_t_13, -1); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 8, __pyx_L12_except_error)
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __Pyx_ImportFrom(__pyx_t_16, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 8, __pyx_L12_except_error)
      __Pyx_GOTREF(__pyx_t_13);
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_OrderedDict, __pyx_t_13) < 0) __PYX_ERR(1, 8, __pyx_L12_except_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L11_exception_handled;
    }
    goto __pyx_L12_except_error;
    __pyx_L12_except_error:;

    __Pyx_XGIVEREF(__pyx_t_21);
    __Pyx_XGIVEREF(__pyx_t_22);
    __Pyx_XGIVEREF(__pyx_t_23);
    __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
    goto __pyx_L1_error;
    __pyx_L11_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_21);
    __Pyx_XGIVEREF(__pyx_t_22);
    __Pyx_XGIVEREF(__pyx_t_23);
    __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
    __pyx_L15_try_end:;
  }

  __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_numpy, __pyx_t_1) < 0) __PYX_ERR(1, 10, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_Import(__pyx_n_s_sys, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_1) < 0) __PYX_ERR(1, 11, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_price, __pyx_n_s_close) < 0) __PYX_ERR(1, 19, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_price0, __pyx_n_s_high) < 0) __PYX_ERR(1, 19, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_price1, __pyx_n_s_low) < 0) __PYX_ERR(1, 19, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_periods, __pyx_n_s_periods) < 0) __PYX_ERR(1, 19, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_PRICE_SERIES_DEFAULTS, __pyx_t_1) < 0) __PYX_ERR(1, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)(&PyDict_Type)));
  __Pyx_GIVEREF(((PyObject *)(&PyDict_Type)));
  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)(&PyDict_Type)));
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_t_1) < 0) __PYX_ERR(1, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_5numpy_ndarray));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5numpy_ndarray));
  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_5numpy_ndarray));
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ARRAY_TYPES, __pyx_t_1) < 0) __PYX_ERR(1, 26, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21);
    __Pyx_XGOTREF(__pyx_t_23);
    __Pyx_XGOTREF(__pyx_t_22);
    __Pyx_XGOTREF(__pyx_t_21);
    /*try:*/ {

      __pyx_t_1 = __Pyx_Import(__pyx_n_s_pandas, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 30, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_pandas, __pyx_t_1) < 0) __PYX_ERR(1, 30, __pyx_L18_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 31, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pandas); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 31, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 31, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_24 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_t_2); if (unlikely(__pyx_t_24 == ((int)-1))) __PYX_ERR(1, 31, __pyx_L18_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 32, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pandas); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 32, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Series); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 32, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_24 = __Pyx_PyObject_Append(__pyx_t_2, __pyx_t_3); if (unlikely(__pyx_t_24 == ((int)-1))) __PYX_ERR(1, 32, __pyx_L18_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pandas); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 33, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 33, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_DATAFRAME, __pyx_t_2) < 0) __PYX_ERR(1, 33, __pyx_L18_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pandas); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 34, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Series); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 34, __pyx_L18_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_SERIES, __pyx_t_3) < 0) __PYX_ERR(1, 34, __pyx_L18_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    }
    __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
    goto __pyx_L23_try_end;
    __pyx_L18_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

    __pyx_t_20 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
    if (__pyx_t_20) {
      __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1) < 0) __PYX_ERR(1, 35, __pyx_L20_except_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_1);

      if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_DATAFRAME, Py_None) < 0) __PYX_ERR(1, 36, __pyx_L20_except_error)

      if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_SERIES, Py_None) < 0) __PYX_ERR(1, 37, __pyx_L20_except_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L19_exception_handled;
    }
    goto __pyx_L20_except_error;
    __pyx_L20_except_error:;

    __Pyx_XGIVEREF(__pyx_t_23);
    __Pyx_XGIVEREF(__pyx_t_22);
    __Pyx_XGIVEREF(__pyx_t_21);
    __Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
    goto __pyx_L1_error;
    __pyx_L19_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_23);
    __Pyx_XGIVEREF(__pyx_t_22);
    __Pyx_XGIVEREF(__pyx_t_21);
    __Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
    __pyx_L23_try_end:;
  }

  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23);
    __Pyx_XGOTREF(__pyx_t_21);
    __Pyx_XGOTREF(__pyx_t_22);
    __Pyx_XGOTREF(__pyx_t_23);
    /*try:*/ {

      __pyx_t_1 = __Pyx_Import(__pyx_n_s_polars, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 41, __pyx_L26_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_polars, __pyx_t_1) < 0) __PYX_ERR(1, 41, __pyx_L26_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 42, __pyx_L26_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_polars); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 42, __pyx_L26_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 42, __pyx_L26_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_24 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_24 == ((int)-1))) __PYX_ERR(1, 42, __pyx_L26_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 43, __pyx_L26_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_polars); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 43, __pyx_L26_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Series); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 43, __pyx_L26_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_24 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_t_2); if (unlikely(__pyx_t_24 == ((int)-1))) __PYX_ERR(1, 43, __pyx_L26_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_polars); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 44, __pyx_L26_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 44, __pyx_L26_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_DATAFRAME, __pyx_t_3) < 0) __PYX_ERR(1, 44, __pyx_L26_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_polars); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 45, __pyx_L26_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_Series); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 45, __pyx_L26_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_SERIES, __pyx_t_2) < 0) __PYX_ERR(1, 45, __pyx_L26_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    }
    __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
    goto __pyx_L31_try_end;
    __pyx_L26_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

    __pyx_t_20 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
    if (__pyx_t_20) {
      __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(1, 46, __pyx_L28_except_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_t_1);

      if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_DATAFRAME, Py_None) < 0) __PYX_ERR(1, 47, __pyx_L28_except_error)

      if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_SERIES, Py_None) < 0) __PYX_ERR(1, 48, __pyx_L28_except_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L27_exception_handled;
    }
    goto __pyx_L28_except_error;
    __pyx_L28_except_error:;

    __Pyx_XGIVEREF(__pyx_t_21);
    __Pyx_XGIVEREF(__pyx_t_22);
    __Pyx_XGIVEREF(__pyx_t_23);
    __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
    goto __pyx_L1_error;
    __pyx_L27_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_21);
    __Pyx_XGIVEREF(__pyx_t_22);
    __Pyx_XGIVEREF(__pyx_t_23);
    __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
    __pyx_L31_try_end:;
  }

  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_t_3) < 0) __PYX_ERR(1, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ARRAY_TYPES, __pyx_t_1) < 0) __PYX_ERR(1, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_version); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_kp_s_3, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 54, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_25 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_25 < 0)) __PYX_ERR(1, 54, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_25) {

    __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_335str2bytes, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 56, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_str2bytes, __pyx_t_1) < 0) __PYX_ERR(1, 56, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_337bytes2str, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 59, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_bytes2str, __pyx_t_1) < 0) __PYX_ERR(1, 59, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    goto __pyx_L34;
  }

  /*else*/ {
    __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_339str2bytes, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_str2bytes, __pyx_t_1) < 0) __PYX_ERR(1, 64, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_341bytes2str, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_bytes2str, __pyx_t_1) < 0) __PYX_ERR(1, 67, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L34:;

  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__364); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_tuple__364, __pyx_n_s_Function, __pyx_n_s_Function, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, __pyx_kp_s_This_is_a_pythonic_wrapper_arou); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  __pyx_t_2 = __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__366)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_init, __pyx_t_2) < 0) __PYX_ERR(1, 99, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_3__initialize_function_info, 0, __pyx_n_s_Function___initialize_function_i, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__368)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_Function__initialize_function_i, __pyx_t_2) < 0) __PYX_ERR(1, 118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__370)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  __pyx_t_16 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_2); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_info, __pyx_t_16) < 0) __PYX_ERR(1, 148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  __pyx_t_16 = __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__372)); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);

  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_function_flags, __pyx_t_2) < 0) __PYX_ERR(1, 155, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__374)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  __pyx_t_16 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_2); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_output_flags, __pyx_t_16) < 0) __PYX_ERR(1, 162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  __pyx_t_16 = __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__376)); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_get_input_names, __pyx_t_16) < 0) __PYX_ERR(1, 168, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  __pyx_t_16 = __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__378)); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_set_input_names, __pyx_t_16) < 0) __PYX_ERR(1, 178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  __pyx_t_16 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_get_input_names);
  if (unlikely(!__pyx_t_16)) {
    PyErr_Clear();
    __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_get_input_names);
  }
  if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_2 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_set_input_names);
  if (unlikely(!__pyx_t_2)) {
    PyErr_Clear();
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_set_input_names);
  }
  if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GIVEREF(__pyx_t_16);
  PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_2);
  __pyx_t_16 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_13, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_input_names, __pyx_t_2) < 0) __PYX_ERR(1, 187, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__380)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_get_input_arrays, __pyx_t_2) < 0) __PYX_ERR(1, 189, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__382)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_set_input_arrays, __pyx_t_2) < 0) __PYX_ERR(1, 199, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_get_input_arrays);
  if (unlikely(!__pyx_t_2)) {
    PyErr_Clear();
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_input_arrays);
  }
  if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_13 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_set_input_arrays);
  if (unlikely(!__pyx_t_13)) {
    PyErr_Clear();
    __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_set_input_arrays);
  }
  if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_13);
  __pyx_t_2 = 0;
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_16, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_input_arrays, __pyx_t_13) < 0) __PYX_ERR(1, 245, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters, 0, __pyx_n_s_Function_get_parameters, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__384)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_get_parameters, __pyx_t_13) < 0) __PYX_ERR(1, 247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters, 0, __pyx_n_s_Function_set_parameters, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__386)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__387);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_set_parameters, __pyx_t_13) < 0) __PYX_ERR(1, 256, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  __pyx_t_13 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_get_parameters);
  if (unlikely(!__pyx_t_13)) {
    PyErr_Clear();
    __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_get_parameters);
  }
  if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_16 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_set_parameters);
  if (unlikely(!__pyx_t_16)) {
    PyErr_Clear();
    __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_set_parameters);
  }
  if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_13);
  __Pyx_GIVEREF(__pyx_t_16);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_16);
  __pyx_t_13 = 0;
  __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_2, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_parameters, __pyx_t_16) < 0) __PYX_ERR(1, 268, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  __pyx_t_16 = __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__389)); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_set_function_args, __pyx_t_16) < 0) __PYX_ERR(1, 270, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  __pyx_t_16 = __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__391)); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);

  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_lookback, __pyx_t_2) < 0) __PYX_ERR(1, 305, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__393)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  __pyx_t_16 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_2); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_output_names, __pyx_t_16) < 0) __PYX_ERR(1, 325, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  __pyx_t_16 = __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__395)); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);

  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_outputs, __pyx_t_2) < 0) __PYX_ERR(1, 335, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__397)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__398);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_run, __pyx_t_2) < 0) __PYX_ERR(1, 365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__400)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_call, __pyx_t_2) < 0) __PYX_ERR(1, 377, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__402)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_Function__input_price_series_na, __pyx_t_2) < 0) __PYX_ERR(1, 442, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__404)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_Function__call_function, __pyx_t_2) < 0) __PYX_ERR(1, 453, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__406)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_Function__check_opt_input_value, __pyx_t_2) < 0) __PYX_ERR(1, 483, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__408)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 498, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_Function__get_opt_input_value, __pyx_t_2) < 0) __PYX_ERR(1, 498, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__410)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_repr, __pyx_t_2) < 0) __PYX_ERR(1, 507, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__412)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_unicode, __pyx_t_2) < 0) __PYX_ERR(1, 510, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __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__414)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_str, __pyx_t_2) < 0) __PYX_ERR(1, 513, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_Function, __pyx_tuple__364, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Function, __pyx_t_2) < 0) __PYX_ERR(1, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_343_ta_getGroupTable, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getGroupTable, __pyx_t_1) < 0) __PYX_ERR(1, 527, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_345_ta_getFuncTable, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getFuncTable, __pyx_t_1) < 0) __PYX_ERR(1, 539, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_347__get_flags, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_flags, __pyx_t_1) < 0) __PYX_ERR(1, 551, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_16777216, __pyx_kp_s_Output_scale_same_as_input) < 0) __PYX_ERR(1, 577, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_67108864, __pyx_kp_s_Output_is_over_volume) < 0) __PYX_ERR(1, 577, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_134217728, __pyx_kp_s_Function_has_an_unstable_period) < 0) __PYX_ERR(1, 577, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_268435456, __pyx_kp_s_Output_is_a_candlestick) < 0) __PYX_ERR(1, 577, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_FUNC_FLAGS, __pyx_t_1) < 0) __PYX_ERR(1, 576, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_1, __pyx_n_s_open) < 0) __PYX_ERR(1, 585, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_2, __pyx_n_s_high) < 0) __PYX_ERR(1, 585, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_4, __pyx_n_s_low) < 0) __PYX_ERR(1, 585, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_8, __pyx_n_s_close) < 0) __PYX_ERR(1, 585, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_16, __pyx_n_s_volume) < 0) __PYX_ERR(1, 585, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_32, __pyx_n_s_openInterest) < 0) __PYX_ERR(1, 585, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_64, __pyx_n_s_timeStamp) < 0) __PYX_ERR(1, 585, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_INPUT_FLAGS, __pyx_t_1) < 0) __PYX_ERR(1, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = __Pyx_PyDict_NewPresized(13); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_1, __pyx_n_s_Line) < 0) __PYX_ERR(1, 595, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_2, __pyx_kp_s_Dotted_Line) < 0) __PYX_ERR(1, 595, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_4, __pyx_kp_s_Dashed_Line) < 0) __PYX_ERR(1, 595, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_8, __pyx_n_s_Dot) < 0) __PYX_ERR(1, 595, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_16, __pyx_n_s_Histogram) < 0) __PYX_ERR(1, 595, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_32, __pyx_kp_s_Pattern_Bool) < 0) __PYX_ERR(1, 595, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_64, __pyx_kp_s_Bull_Bear_Pattern_Bearish_0_Neut) < 0) __PYX_ERR(1, 595, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_128, __pyx_kp_s_Strength_Pattern_200_100_Bearish) < 0) __PYX_ERR(1, 595, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_256, __pyx_kp_s_Output_can_be_positive) < 0) __PYX_ERR(1, 595, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_512, __pyx_kp_s_Output_can_be_negative) < 0) __PYX_ERR(1, 595, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_1024, __pyx_kp_s_Output_can_be_zero) < 0) __PYX_ERR(1, 595, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_2048, __pyx_kp_s_Values_represent_an_upper_limit) < 0) __PYX_ERR(1, 595, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_4096, __pyx_kp_s_Values_represent_a_lower_limit) < 0) __PYX_ERR(1, 595, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_OUTPUT_FLAGS, __pyx_t_1) < 0) __PYX_ERR(1, 594, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_349_ta_getFuncInfo, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 610, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getFuncInfo, __pyx_t_1) < 0) __PYX_ERR(1, 610, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_351_ta_getInputParameterInfo, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getInputParameterInfo, __pyx_t_1) < 0) __PYX_ERR(1, 629, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_353_ta_getOptInputParameterInfo, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getOptInputParameterInfo, __pyx_t_1) < 0) __PYX_ERR(1, 650, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_355_ta_getOutputParameterInfo, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getOutputParameterInfo, __pyx_t_1) < 0) __PYX_ERR(1, 674, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_357_get_defaults_and_docs, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_defaults_and_docs, __pyx_t_1) < 0) __PYX_ERR(1, 694, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_359stream_ACOS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ACOS, __pyx_t_1) < 0) __PYX_ERR(3, 11, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_361stream_AD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AD, __pyx_t_1) < 0) __PYX_ERR(3, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_363stream_ADD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADD, __pyx_t_1) < 0) __PYX_ERR(3, 74, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_365stream_ADOSC, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADOSC, __pyx_t_1) < 0) __PYX_ERR(3, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_367stream_ADX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADX, __pyx_t_1) < 0) __PYX_ERR(3, 144, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_369stream_ADXR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADXR, __pyx_t_1) < 0) __PYX_ERR(3, 179, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_371stream_APO, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_APO, __pyx_t_1) < 0) __PYX_ERR(3, 214, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_373stream_AROON, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AROON, __pyx_t_1) < 0) __PYX_ERR(3, 245, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_375stream_AROONOSC, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AROONOSC, __pyx_t_1) < 0) __PYX_ERR(3, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_377stream_ASIN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ASIN, __pyx_t_1) < 0) __PYX_ERR(3, 312, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_379stream_ATAN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ATAN, __pyx_t_1) < 0) __PYX_ERR(3, 339, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_381stream_ATR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ATR, __pyx_t_1) < 0) __PYX_ERR(3, 366, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_383stream_AVGPRICE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AVGPRICE, __pyx_t_1) < 0) __PYX_ERR(3, 401, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_385stream_BBANDS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_BBANDS, __pyx_t_1) < 0) __PYX_ERR(3, 437, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_387stream_BETA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_BETA, __pyx_t_1) < 0) __PYX_ERR(3, 475, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_389stream_BOP, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_BOP, __pyx_t_1) < 0) __PYX_ERR(3, 508, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_391stream_CCI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CCI, __pyx_t_1) < 0) __PYX_ERR(3, 544, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_393stream_CDL2CROWS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL2CROWS, __pyx_t_1) < 0) __PYX_ERR(3, 579, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_395stream_CDL3BLACKCROWS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3BLACKCROWS, __pyx_t_1) < 0) __PYX_ERR(3, 615, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_397stream_CDL3INSIDE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3INSIDE, __pyx_t_1) < 0) __PYX_ERR(3, 651, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_399stream_CDL3LINESTRIKE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3LINESTRIKE, __pyx_t_1) < 0) __PYX_ERR(3, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_401stream_CDL3OUTSIDE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3OUTSIDE, __pyx_t_1) < 0) __PYX_ERR(3, 723, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3STARSINSOUTH, __pyx_t_1) < 0) __PYX_ERR(3, 759, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3WHITESOLDIERS, __pyx_t_1) < 0) __PYX_ERR(3, 795, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_407stream_CDLABANDONEDBABY, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLABANDONEDBABY, __pyx_t_1) < 0) __PYX_ERR(3, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLADVANCEBLOCK, __pyx_t_1) < 0) __PYX_ERR(3, 869, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_411stream_CDLBELTHOLD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLBELTHOLD, __pyx_t_1) < 0) __PYX_ERR(3, 905, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_413stream_CDLBREAKAWAY, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLBREAKAWAY, __pyx_t_1) < 0) __PYX_ERR(3, 941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLCLOSINGMARUBOZU, __pyx_t_1) < 0) __PYX_ERR(3, 977, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLCONCEALBABYSWALL, __pyx_t_1) < 0) __PYX_ERR(3, 1013, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLCOUNTERATTACK, __pyx_t_1) < 0) __PYX_ERR(3, 1049, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLDARKCLOUDCOVER, __pyx_t_1) < 0) __PYX_ERR(3, 1085, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_423stream_CDLDOJI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLDOJI, __pyx_t_1) < 0) __PYX_ERR(3, 1123, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_425stream_CDLDOJISTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLDOJISTAR, __pyx_t_1) < 0) __PYX_ERR(3, 1159, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLDRAGONFLYDOJI, __pyx_t_1) < 0) __PYX_ERR(3, 1195, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_429stream_CDLENGULFING, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLENGULFING, __pyx_t_1) < 0) __PYX_ERR(3, 1231, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLEVENINGDOJISTAR, __pyx_t_1) < 0) __PYX_ERR(3, 1267, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_433stream_CDLEVENINGSTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLEVENINGSTAR, __pyx_t_1) < 0) __PYX_ERR(3, 1305, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLGAPSIDESIDEWHITE, __pyx_t_1) < 0) __PYX_ERR(3, 1343, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLGRAVESTONEDOJI, __pyx_t_1) < 0) __PYX_ERR(3, 1379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_439stream_CDLHAMMER, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHAMMER, __pyx_t_1) < 0) __PYX_ERR(3, 1415, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_441stream_CDLHANGINGMAN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHANGINGMAN, __pyx_t_1) < 0) __PYX_ERR(3, 1451, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_443stream_CDLHARAMI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHARAMI, __pyx_t_1) < 0) __PYX_ERR(3, 1487, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_445stream_CDLHARAMICROSS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHARAMICROSS, __pyx_t_1) < 0) __PYX_ERR(3, 1523, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_447stream_CDLHIGHWAVE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHIGHWAVE, __pyx_t_1) < 0) __PYX_ERR(3, 1559, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_449stream_CDLHIKKAKE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHIKKAKE, __pyx_t_1) < 0) __PYX_ERR(3, 1595, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHIKKAKEMOD, __pyx_t_1) < 0) __PYX_ERR(3, 1631, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHOMINGPIGEON, __pyx_t_1) < 0) __PYX_ERR(3, 1667, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLIDENTICAL3CROWS, __pyx_t_1) < 0) __PYX_ERR(3, 1703, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_457stream_CDLINNECK, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLINNECK, __pyx_t_1) < 0) __PYX_ERR(3, 1739, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLINVERTEDHAMMER, __pyx_t_1) < 0) __PYX_ERR(3, 1775, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_461stream_CDLKICKING, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1811, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLKICKING, __pyx_t_1) < 0) __PYX_ERR(3, 1811, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLKICKINGBYLENGTH, __pyx_t_1) < 0) __PYX_ERR(3, 1847, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLLADDERBOTTOM, __pyx_t_1) < 0) __PYX_ERR(3, 1883, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLLONGLEGGEDDOJI, __pyx_t_1) < 0) __PYX_ERR(3, 1919, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_469stream_CDLLONGLINE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLLONGLINE, __pyx_t_1) < 0) __PYX_ERR(3, 1955, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_471stream_CDLMARUBOZU, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMARUBOZU, __pyx_t_1) < 0) __PYX_ERR(3, 1991, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_473stream_CDLMATCHINGLOW, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMATCHINGLOW, __pyx_t_1) < 0) __PYX_ERR(3, 2027, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_475stream_CDLMATHOLD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2063, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMATHOLD, __pyx_t_1) < 0) __PYX_ERR(3, 2063, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMORNINGDOJISTAR, __pyx_t_1) < 0) __PYX_ERR(3, 2101, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_479stream_CDLMORNINGSTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMORNINGSTAR, __pyx_t_1) < 0) __PYX_ERR(3, 2139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_481stream_CDLONNECK, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLONNECK, __pyx_t_1) < 0) __PYX_ERR(3, 2177, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_483stream_CDLPIERCING, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLPIERCING, __pyx_t_1) < 0) __PYX_ERR(3, 2213, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLRICKSHAWMAN, __pyx_t_1) < 0) __PYX_ERR(3, 2249, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLRISEFALL3METHODS, __pyx_t_1) < 0) __PYX_ERR(3, 2285, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSEPARATINGLINES, __pyx_t_1) < 0) __PYX_ERR(3, 2321, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSHOOTINGSTAR, __pyx_t_1) < 0) __PYX_ERR(3, 2357, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_493stream_CDLSHORTLINE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSHORTLINE, __pyx_t_1) < 0) __PYX_ERR(3, 2393, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_495stream_CDLSPINNINGTOP, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSPINNINGTOP, __pyx_t_1) < 0) __PYX_ERR(3, 2429, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSTALLEDPATTERN, __pyx_t_1) < 0) __PYX_ERR(3, 2465, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSTICKSANDWICH, __pyx_t_1) < 0) __PYX_ERR(3, 2501, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_501stream_CDLTAKURI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLTAKURI, __pyx_t_1) < 0) __PYX_ERR(3, 2537, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_503stream_CDLTASUKIGAP, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLTASUKIGAP, __pyx_t_1) < 0) __PYX_ERR(3, 2573, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_505stream_CDLTHRUSTING, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLTHRUSTING, __pyx_t_1) < 0) __PYX_ERR(3, 2609, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_507stream_CDLTRISTAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLTRISTAR, __pyx_t_1) < 0) __PYX_ERR(3, 2645, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLUNIQUE3RIVER, __pyx_t_1) < 0) __PYX_ERR(3, 2681, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLUPSIDEGAP2CROWS, __pyx_t_1) < 0) __PYX_ERR(3, 2717, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2753, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLXSIDEGAP3METHODS, __pyx_t_1) < 0) __PYX_ERR(3, 2753, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_515stream_CEIL, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CEIL, __pyx_t_1) < 0) __PYX_ERR(3, 2789, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_517stream_CMO, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CMO, __pyx_t_1) < 0) __PYX_ERR(3, 2816, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_519stream_CORREL, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CORREL, __pyx_t_1) < 0) __PYX_ERR(3, 2845, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_521stream_COS, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_COS, __pyx_t_1) < 0) __PYX_ERR(3, 2878, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_523stream_COSH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_COSH, __pyx_t_1) < 0) __PYX_ERR(3, 2905, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_525stream_DEMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_DEMA, __pyx_t_1) < 0) __PYX_ERR(3, 2932, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_527stream_DIV, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_DIV, __pyx_t_1) < 0) __PYX_ERR(3, 2961, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_529stream_DX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_DX, __pyx_t_1) < 0) __PYX_ERR(3, 2992, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_531stream_EMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_EMA, __pyx_t_1) < 0) __PYX_ERR(3, 3027, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_533stream_EXP, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3056, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_EXP, __pyx_t_1) < 0) __PYX_ERR(3, 3056, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_535stream_FLOOR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_FLOOR, __pyx_t_1) < 0) __PYX_ERR(3, 3083, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_537stream_HT_DCPERIOD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_DCPERIOD, __pyx_t_1) < 0) __PYX_ERR(3, 3110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_539stream_HT_DCPHASE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_DCPHASE, __pyx_t_1) < 0) __PYX_ERR(3, 3137, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_541stream_HT_PHASOR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_PHASOR, __pyx_t_1) < 0) __PYX_ERR(3, 3164, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_543stream_HT_SINE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_SINE, __pyx_t_1) < 0) __PYX_ERR(3, 3194, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_545stream_HT_TRENDLINE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_TRENDLINE, __pyx_t_1) < 0) __PYX_ERR(3, 3224, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_547stream_HT_TRENDMODE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_TRENDMODE, __pyx_t_1) < 0) __PYX_ERR(3, 3251, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_549stream_KAMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_KAMA, __pyx_t_1) < 0) __PYX_ERR(3, 3278, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_551stream_LINEARREG, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG, __pyx_t_1) < 0) __PYX_ERR(3, 3307, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_553stream_LINEARREG_ANGLE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG_ANGLE, __pyx_t_1) < 0) __PYX_ERR(3, 3336, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG_INTERCEPT, __pyx_t_1) < 0) __PYX_ERR(3, 3365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_557stream_LINEARREG_SLOPE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG_SLOPE, __pyx_t_1) < 0) __PYX_ERR(3, 3394, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_559stream_LN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LN, __pyx_t_1) < 0) __PYX_ERR(3, 3423, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_561stream_LOG10, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LOG10, __pyx_t_1) < 0) __PYX_ERR(3, 3450, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_563stream_MA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MA, __pyx_t_1) < 0) __PYX_ERR(3, 3477, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_565stream_MACD, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MACD, __pyx_t_1) < 0) __PYX_ERR(3, 3507, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_567stream_MACDEXT, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MACDEXT, __pyx_t_1) < 0) __PYX_ERR(3, 3544, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_569stream_MACDFIX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MACDFIX, __pyx_t_1) < 0) __PYX_ERR(3, 3584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_571stream_MAMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAMA, __pyx_t_1) < 0) __PYX_ERR(3, 3619, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_573stream_MAVP, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAVP, __pyx_t_1) < 0) __PYX_ERR(3, 3652, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_575stream_MAX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAX, __pyx_t_1) < 0) __PYX_ERR(3, 3687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_577stream_MAXINDEX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3716, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAXINDEX, __pyx_t_1) < 0) __PYX_ERR(3, 3716, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_579stream_MEDPRICE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MEDPRICE, __pyx_t_1) < 0) __PYX_ERR(3, 3745, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_581stream_MFI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MFI, __pyx_t_1) < 0) __PYX_ERR(3, 3775, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_583stream_MIDPOINT, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MIDPOINT, __pyx_t_1) < 0) __PYX_ERR(3, 3813, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_585stream_MIDPRICE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MIDPRICE, __pyx_t_1) < 0) __PYX_ERR(3, 3842, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_587stream_MIN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MIN, __pyx_t_1) < 0) __PYX_ERR(3, 3874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_589stream_MININDEX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3903, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MININDEX, __pyx_t_1) < 0) __PYX_ERR(3, 3903, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_591stream_MINMAX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINMAX, __pyx_t_1) < 0) __PYX_ERR(3, 3932, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_593stream_MINMAXINDEX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINMAXINDEX, __pyx_t_1) < 0) __PYX_ERR(3, 3964, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_595stream_MINUS_DI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINUS_DI, __pyx_t_1) < 0) __PYX_ERR(3, 3996, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_597stream_MINUS_DM, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINUS_DM, __pyx_t_1) < 0) __PYX_ERR(3, 4031, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_599stream_MOM, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4063, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MOM, __pyx_t_1) < 0) __PYX_ERR(3, 4063, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_601stream_MULT, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MULT, __pyx_t_1) < 0) __PYX_ERR(3, 4092, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_603stream_NATR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_NATR, __pyx_t_1) < 0) __PYX_ERR(3, 4123, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_605stream_OBV, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_OBV, __pyx_t_1) < 0) __PYX_ERR(3, 4158, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_607stream_PLUS_DI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_PLUS_DI, __pyx_t_1) < 0) __PYX_ERR(3, 4189, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_609stream_PLUS_DM, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_PLUS_DM, __pyx_t_1) < 0) __PYX_ERR(3, 4224, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_611stream_PPO, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_PPO, __pyx_t_1) < 0) __PYX_ERR(3, 4256, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_613stream_ROC, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROC, __pyx_t_1) < 0) __PYX_ERR(3, 4287, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_615stream_ROCP, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROCP, __pyx_t_1) < 0) __PYX_ERR(3, 4316, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_617stream_ROCR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROCR, __pyx_t_1) < 0) __PYX_ERR(3, 4345, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_619stream_ROCR100, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROCR100, __pyx_t_1) < 0) __PYX_ERR(3, 4374, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_621stream_RSI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_RSI, __pyx_t_1) < 0) __PYX_ERR(3, 4403, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_623stream_SAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SAR, __pyx_t_1) < 0) __PYX_ERR(3, 4432, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_625stream_SAREXT, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SAREXT, __pyx_t_1) < 0) __PYX_ERR(3, 4465, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_627stream_SIN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SIN, __pyx_t_1) < 0) __PYX_ERR(3, 4504, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_629stream_SINH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SINH, __pyx_t_1) < 0) __PYX_ERR(3, 4531, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_631stream_SMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SMA, __pyx_t_1) < 0) __PYX_ERR(3, 4558, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_633stream_SQRT, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SQRT, __pyx_t_1) < 0) __PYX_ERR(3, 4587, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_635stream_STDDEV, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4614, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STDDEV, __pyx_t_1) < 0) __PYX_ERR(3, 4614, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_637stream_STOCH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STOCH, __pyx_t_1) < 0) __PYX_ERR(3, 4644, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_639stream_STOCHF, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STOCHF, __pyx_t_1) < 0) __PYX_ERR(3, 4686, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_641stream_STOCHRSI, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STOCHRSI, __pyx_t_1) < 0) __PYX_ERR(3, 4726, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_643stream_SUB, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4761, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SUB, __pyx_t_1) < 0) __PYX_ERR(3, 4761, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_645stream_SUM, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4792, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SUM, __pyx_t_1) < 0) __PYX_ERR(3, 4792, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_647stream_T3, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_T3, __pyx_t_1) < 0) __PYX_ERR(3, 4821, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_649stream_TAN, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TAN, __pyx_t_1) < 0) __PYX_ERR(3, 4851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_651stream_TANH, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TANH, __pyx_t_1) < 0) __PYX_ERR(3, 4878, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_653stream_TEMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TEMA, __pyx_t_1) < 0) __PYX_ERR(3, 4905, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_655stream_TRANGE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4934, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TRANGE, __pyx_t_1) < 0) __PYX_ERR(3, 4934, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_657stream_TRIMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TRIMA, __pyx_t_1) < 0) __PYX_ERR(3, 4967, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_659stream_TRIX, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TRIX, __pyx_t_1) < 0) __PYX_ERR(3, 4996, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_661stream_TSF, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5025, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TSF, __pyx_t_1) < 0) __PYX_ERR(3, 5025, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_663stream_TYPPRICE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TYPPRICE, __pyx_t_1) < 0) __PYX_ERR(3, 5054, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_665stream_ULTOSC, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5087, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ULTOSC, __pyx_t_1) < 0) __PYX_ERR(3, 5087, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_667stream_VAR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_VAR, __pyx_t_1) < 0) __PYX_ERR(3, 5124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_669stream_WCLPRICE, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_WCLPRICE, __pyx_t_1) < 0) __PYX_ERR(3, 5154, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_671stream_WILLR, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_WILLR, __pyx_t_1) < 0) __PYX_ERR(3, 5187, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5talib_7_ta_lib_673stream_WMA, NULL, __pyx_n_s_talib__ta_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_WMA, __pyx_t_1) < 0) __PYX_ERR(3, 5222, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_16 = __pyx_t_2; __Pyx_INCREF(__pyx_t_16); __pyx_t_15 = 0;
    __pyx_t_26 = NULL;
  } else {
    __pyx_t_15 = -1; __pyx_t_16 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_26 = Py_TYPE(__pyx_t_16)->tp_iternext; if (unlikely(!__pyx_t_26)) __PYX_ERR(5, 6, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_26)) {
      if (likely(PyList_CheckExact(__pyx_t_16))) {
        if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_16)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_15); __Pyx_INCREF(__pyx_t_2); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(5, 6, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_16, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_16)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_15); __Pyx_INCREF(__pyx_t_2); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(5, 6, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_16, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_26(__pyx_t_16);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 6, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_name, __pyx_t_2) < 0) __PYX_ERR(5, 6, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_13 = __Pyx_PyString_FormatSafe(__pyx_kp_s_stream__s, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_13))) __PYX_ERR(5, 6, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __pyx_t_16 = PyNumber_Add(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_all, __pyx_t_16) < 0) __PYX_ERR(5, 6, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  __pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_16) < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;


  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  if (__pyx_m) {
    if (__pyx_d) {
      __Pyx_AddTraceback("init talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    Py_CLEAR(__pyx_m);
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init talib._ta_lib");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  return (__pyx_m != NULL) ? 0 : -1;
  #elif PY_MAJOR_VERSION >= 3
  return __pyx_m;
  #else
  return;
  #endif
}

/* --- Runtime support code --- */
/* Refnanny */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule(modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, "RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

/* PyObjectGetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_getattr))
        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
#endif
    return PyObject_GetAttr(obj, attr_name);
}
#endif

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
    if (unlikely(!result)) {
        PyErr_Format(PyExc_NameError,
#if PY_MAJOR_VERSION >= 3
            "name '%U' is not defined", name);
#else
            "name '%.200s' is not defined", PyString_AS_STRING(name));
#endif
    }
    return result;
}

/* PyCFunctionFastCall */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) {
    PyCFunctionObject *func = (PyCFunctionObject*)func_obj;
    PyCFunction meth = PyCFunction_GET_FUNCTION(func);
    PyObject *self = PyCFunction_GET_SELF(func);
    int flags = PyCFunction_GET_FLAGS(func);
    assert(PyCFunction_Check(func));
    assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)));
    assert(nargs >= 0);
    assert(nargs == 0 || args != NULL);
    /* _PyCFunction_FastCallDict() must not be called with an exception set,
       because it may clear it (directly or indirectly) and so the
       caller loses its exception */
    assert(!PyErr_Occurred());
    if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) {
        return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL);
    } else {
        return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs);
    }
}
#endif

/* PyFunctionFastCall */
#if CYTHON_FAST_PYCALL
static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
                                               PyObject *globals) {
    PyFrameObject *f;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject **fastlocals;
    Py_ssize_t i;
    PyObject *result;
    assert(globals != NULL);
    /* XXX Perhaps we should create a specialized
       PyFrame_New() that doesn't take locals, but does
       take builtins without sanity checking them.
       */
    assert(tstate != NULL);
    f = PyFrame_New(tstate, co, globals, NULL);
    if (f == NULL) {
        return NULL;
    }
    fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
    for (i = 0; i < na; i++) {
        Py_INCREF(*args);
        fastlocals[i] = *args++;
    }
    result = PyEval_EvalFrameEx(f,0);
    ++tstate->recursion_depth;
    Py_DECREF(f);
    --tstate->recursion_depth;
    return result;
}
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
    PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
    PyObject *globals = PyFunction_GET_GLOBALS(func);
    PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
    PyObject *closure;
#if PY_MAJOR_VERSION >= 3
    PyObject *kwdefs;
#endif
    PyObject *kwtuple, **k;
    PyObject **d;
    Py_ssize_t nd;
    Py_ssize_t nk;
    PyObject *result;
    assert(kwargs == NULL || PyDict_Check(kwargs));
    nk = kwargs ? PyDict_Size(kwargs) : 0;
    if (Py_EnterRecursiveCall((char*)" while calling a Python object")) {
        return NULL;
    }
    if (
#if PY_MAJOR_VERSION >= 3
            co->co_kwonlyargcount == 0 &&
#endif
            likely(kwargs == NULL || nk == 0) &&
            co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
        if (argdefs == NULL && co->co_argcount == nargs) {
            result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
            goto done;
        }
        else if (nargs == 0 && argdefs != NULL
                 && co->co_argcount == Py_SIZE(argdefs)) {
            /* function called with no arguments, but all parameters have
               a default value: use default values as arguments .*/
            args = &PyTuple_GET_ITEM(argdefs, 0);
            result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
            goto done;
        }
    }
    if (kwargs != NULL) {
        Py_ssize_t pos, i;
        kwtuple = PyTuple_New(2 * nk);
        if (kwtuple == NULL) {
            result = NULL;
            goto done;
        }
        k = &PyTuple_GET_ITEM(kwtuple, 0);
        pos = i = 0;
        while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
            Py_INCREF(k[i]);
            Py_INCREF(k[i+1]);
            i += 2;
        }
        nk = i / 2;
    }
    else {
        kwtuple = NULL;
        k = NULL;
    }
    closure = PyFunction_GET_CLOSURE(func);
#if PY_MAJOR_VERSION >= 3
    kwdefs = PyFunction_GET_KW_DEFAULTS(func);
#endif
    if (argdefs != NULL) {
        d = &PyTuple_GET_ITEM(argdefs, 0);
        nd = Py_SIZE(argdefs);
    }
    else {
        d = NULL;
        nd = 0;
    }
#if PY_MAJOR_VERSION >= 3
    result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, kwdefs, closure);
#else
    result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, closure);
#endif
    Py_XDECREF(kwtuple);
done:
    Py_LeaveRecursiveCall();
    return result;
}
#endif
#endif

/* PyObjectCall */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = Py_TYPE(func)->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallMethO */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = PyCFunction_GET_FUNCTION(func);
    self = PyCFunction_GET_SELF(func);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallOneArg */
#if CYTHON_COMPILING_IN_CPYTHON
static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_New(1);
    if (unlikely(!args)) return NULL;
    Py_INCREF(arg);
    PyTuple_SET_ITEM(args, 0, arg);
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, &arg, 1);
    }
#endif
    if (likely(PyCFunction_Check(func))) {
        if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
            return __Pyx_PyObject_CallMethO(func, arg);
#if CYTHON_FAST_PYCCALL
        } else if (__Pyx_PyFastCFunction_Check(func)) {
            return __Pyx_PyCFunction_FastCall(func, &arg, 1);
#endif
        }
    }
    return __Pyx__PyObject_CallOneArg(func, arg);
}
#else
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_Pack(1, arg);
    if (unlikely(!args)) return NULL;
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
#endif

/* PyErrFetchRestore */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
}
#endif

/* RaiseException */
#if PY_MAJOR_VERSION < 3
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
                        CYTHON_UNUSED PyObject *cause) {
    __Pyx_PyThreadState_declare
    Py_XINCREF(type);
    if (!value || value == Py_None)
        value = NULL;
    else
        Py_INCREF(value);
    if (!tb || tb == Py_None)
        tb = NULL;
    else {
        Py_INCREF(tb);
        if (!PyTraceBack_Check(tb)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: arg 3 must be a traceback or None");
            goto raise_error;
        }
    }
    if (PyType_Check(type)) {
#if CYTHON_COMPILING_IN_PYPY
        if (!value) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#endif
        PyErr_NormalizeException(&type, &value, &tb);
    } else {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto raise_error;
        }
        value = type;
        type = (PyObject*) Py_TYPE(type);
        Py_INCREF(type);
        if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: exception class must be a subclass of BaseException");
            goto raise_error;
        }
    }
    __Pyx_PyThreadState_assign
    __Pyx_ErrRestore(type, value, tb);
    return;
raise_error:
    Py_XDECREF(value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
    return;
}
#else
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                int is_subclass = PyObject_IsSubclass(instance_class, type);
                if (!is_subclass) {
                    instance_class = NULL;
                } else if (unlikely(is_subclass == -1)) {
                    goto bad;
                } else {
                    type = instance_class;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
    if (cause) {
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
#if CYTHON_COMPILING_IN_PYPY
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#else
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}
#endif

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* RaiseDoubleKeywords */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        #if PY_MAJOR_VERSION >= 3
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
        #else
        "%s() got multiple values for keyword argument '%s'", func_name,
        PyString_AsString(kw_name));
        #endif
}

/* ParseKeywords */
static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    PyObject **argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject *key = 0, *value = 0;
    Py_ssize_t pos = 0;
    PyObject*** name;
    PyObject*** first_kw_arg = argnames + num_pos_args;
    while (PyDict_Next(kwds, &pos, &key, &value)) {
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
            continue;
        }
        name = first_kw_arg;
        #if PY_MAJOR_VERSION < 3
        if (likely(PyString_Check(key))) {
            while (*name) {
                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
                        && _PyString_Eq(**name, key)) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    if ((**argname == key) || (
                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
                             && _PyString_Eq(**argname, key))) {
                        goto arg_passed_twice;
                    }
                    argname++;
                }
            }
        } else
        #endif
        if (likely(PyUnicode_Check(key))) {
            while (*name) {
                int cmp = (**name == key) ? 0 :
                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                    (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                #endif
                    PyUnicode_Compare(**name, key);
                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                if (cmp == 0) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    int cmp = (**argname == key) ? 0 :
                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                        (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                    #endif
                        PyUnicode_Compare(**argname, key);
                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                    if (cmp == 0) goto arg_passed_twice;
                    argname++;
                }
            }
        } else
            goto invalid_keyword_type;
        if (kwds2) {
            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
        } else {
            goto invalid_keyword;
        }
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    return -1;
}

/* ArgTypeTest */
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
{
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    else if (exact) {
        #if PY_MAJOR_VERSION == 2
        if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
        #endif
    }
    else {
        if (likely(__Pyx_TypeCheck(obj, type))) return 1;
    }
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)",
        name, type->tp_name, Py_TYPE(obj)->tp_name);
    return 0;
}

/* PyDictVersioning */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
    PyObject **dictptr = NULL;
    Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
    if (offset) {
#if CYTHON_COMPILING_IN_CPYTHON
        dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
#else
        dictptr = _PyObject_GetDictPtr(obj);
#endif
    }
    return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
        return 0;
    return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#endif

/* GetModuleGlobalName */
#if CYTHON_USE_DICT_VERSIONS
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
#else
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
#endif
{
    PyObject *result;
#if !CYTHON_AVOID_BORROWED_REFS
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
    result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    } else if (unlikely(PyErr_Occurred())) {
        return NULL;
    }
#else
    result = PyDict_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
#endif
#else
    result = PyObject_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
    PyErr_Clear();
#endif
    return __Pyx_GetBuiltinName(name);
}

/* PyObjectSetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_setattro))
        return tp->tp_setattro(obj, attr_name, value);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_setattr))
        return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
#endif
    return PyObject_SetAttr(obj, attr_name, value);
}
#endif

/* GetItemInt */
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (!j) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyList_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
        PyObject *r = PyList_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyTuple_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
        PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
                                                     CYTHON_NCP_UNUSED int wraparound,
                                                     CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
            PyObject *r = PyList_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    }
    else if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
            PyObject *r = PyTuple_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    } else {
        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
        if (likely(m && m->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
                Py_ssize_t l = m->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return m->sq_item(o, i);
        }
    }
#else
    if (is_list || PySequence_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
}

/* ObjectGetItem */
#if CYTHON_USE_TYPE_SLOTS
static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) {
    PyObject *runerr;
    Py_ssize_t key_value;
    PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence;
    if (unlikely(!(m && m->sq_item))) {
        PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name);
        return NULL;
    }
    key_value = __Pyx_PyIndex_AsSsize_t(index);
    if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
        return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
    }
    if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
        PyErr_Clear();
        PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name);
    }
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) {
    PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping;
    if (likely(m && m->mp_subscript)) {
        return m->mp_subscript(obj, key);
    }
    return __Pyx_PyObject_GetIndex(obj, key);
}
#endif

/* PyObjectCall2Args */
static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
    PyObject *args, *result = NULL;
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(function)) {
        PyObject *args[2] = {arg1, arg2};
        return __Pyx_PyFunction_FastCall(function, args, 2);
    }
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(function)) {
        PyObject *args[2] = {arg1, arg2};
        return __Pyx_PyCFunction_FastCall(function, args, 2);
    }
    #endif
    args = PyTuple_New(2);
    if (unlikely(!args)) goto done;
    Py_INCREF(arg1);
    PyTuple_SET_ITEM(args, 0, arg1);
    Py_INCREF(arg2);
    PyTuple_SET_ITEM(args, 1, arg2);
    Py_INCREF(function);
    result = __Pyx_PyObject_Call(function, args, NULL);
    Py_DECREF(args);
    Py_DECREF(function);
done:
    return result;
}

/* PyObjectCallNoArg */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, NULL, 0);
    }
#endif
#ifdef __Pyx_CyFunction_USED
    if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func)))
#else
    if (likely(PyCFunction_Check(func)))
#endif
    {
        if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
            return __Pyx_PyObject_CallMethO(func, NULL);
        }
    }
    return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
}
#endif

/* DictGetItem */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
    PyObject *value;
    value = PyDict_GetItemWithError(d, key);
    if (unlikely(!value)) {
        if (!PyErr_Occurred()) {
            if (unlikely(PyTuple_Check(key))) {
                PyObject* args = PyTuple_Pack(1, key);
                if (likely(args)) {
                    PyErr_SetObject(PyExc_KeyError, args);
                    Py_DECREF(args);
                }
            } else {
                PyErr_SetObject(PyExc_KeyError, key);
            }
        }
        return NULL;
    }
    Py_INCREF(value);
    return value;
}
#endif

/* RaiseTooManyValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

/* RaiseNeedMoreValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

/* IterFinish */
static CYTHON_INLINE int __Pyx_IterFinish(void) {
#if CYTHON_FAST_THREAD_STATE
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject* exc_type = tstate->curexc_type;
    if (unlikely(exc_type)) {
        if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) {
            PyObject *exc_value, *exc_tb;
            exc_value = tstate->curexc_value;
            exc_tb = tstate->curexc_traceback;
            tstate->curexc_type = 0;
            tstate->curexc_value = 0;
            tstate->curexc_traceback = 0;
            Py_DECREF(exc_type);
            Py_XDECREF(exc_value);
            Py_XDECREF(exc_tb);
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#else
    if (unlikely(PyErr_Occurred())) {
        if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
            PyErr_Clear();
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#endif
}

/* UnpackItemEndCheck */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    } else {
        return __Pyx_IterFinish();
    }
    return 0;
}

/* StringJoin */
#if !CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values) {
    return PyObject_CallMethodObjArgs(sep, __pyx_n_s_join, values, NULL);
}
#endif

/* PyObjectGetMethod */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
    PyObject *attr;
#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
    PyTypeObject *tp = Py_TYPE(obj);
    PyObject *descr;
    descrgetfunc f = NULL;
    PyObject **dictptr, *dict;
    int meth_found = 0;
    assert (*method == NULL);
    if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
        attr = __Pyx_PyObject_GetAttrStr(obj, name);
        goto try_unpack;
    }
    if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
        return 0;
    }
    descr = _PyType_Lookup(tp, name);
    if (likely(descr != NULL)) {
        Py_INCREF(descr);
#if PY_MAJOR_VERSION >= 3
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type)))
        #endif
#else
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr)))
        #endif
#endif
        {
            meth_found = 1;
        } else {
            f = Py_TYPE(descr)->tp_descr_get;
            if (f != NULL && PyDescr_IsData(descr)) {
                attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
                Py_DECREF(descr);
                goto try_unpack;
            }
        }
    }
    dictptr = _PyObject_GetDictPtr(obj);
    if (dictptr != NULL && (dict = *dictptr) != NULL) {
        Py_INCREF(dict);
        attr = __Pyx_PyDict_GetItemStr(dict, name);
        if (attr != NULL) {
            Py_INCREF(attr);
            Py_DECREF(dict);
            Py_XDECREF(descr);
            goto try_unpack;
        }
        Py_DECREF(dict);
    }
    if (meth_found) {
        *method = descr;
        return 1;
    }
    if (f != NULL) {
        attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
        Py_DECREF(descr);
        goto try_unpack;
    }
    if (descr != NULL) {
        *method = descr;
        return 0;
    }
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'%.50s' object has no attribute '%U'",
                 tp->tp_name, name);
#else
                 "'%.50s' object has no attribute '%.400s'",
                 tp->tp_name, PyString_AS_STRING(name));
#endif
    return 0;
#else
    attr = __Pyx_PyObject_GetAttrStr(obj, name);
    goto try_unpack;
#endif
try_unpack:
#if CYTHON_UNPACK_METHODS
    if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
        PyObject *function = PyMethod_GET_FUNCTION(attr);
        Py_INCREF(function);
        Py_DECREF(attr);
        *method = function;
        return 1;
    }
#endif
    *method = attr;
    return 0;
}

/* PyObjectCallMethod0 */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
    PyObject *method = NULL, *result = NULL;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_CallOneArg(method, obj);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) goto bad;
    result = __Pyx_PyObject_CallNoArg(method);
    Py_DECREF(method);
bad:
    return result;
}

/* RaiseNoneIterError */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
}

/* UnpackTupleError */
static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
    if (t == Py_None) {
      __Pyx_RaiseNoneNotIterableError();
    } else if (PyTuple_GET_SIZE(t) < index) {
      __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t));
    } else {
      __Pyx_RaiseTooManyValuesError(index);
    }
}

/* UnpackTuple2 */
static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
        PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) {
    PyObject *value1 = NULL, *value2 = NULL;
#if CYTHON_COMPILING_IN_PYPY
    value1 = PySequence_ITEM(tuple, 0);  if (unlikely(!value1)) goto bad;
    value2 = PySequence_ITEM(tuple, 1);  if (unlikely(!value2)) goto bad;
#else
    value1 = PyTuple_GET_ITEM(tuple, 0);  Py_INCREF(value1);
    value2 = PyTuple_GET_ITEM(tuple, 1);  Py_INCREF(value2);
#endif
    if (decref_tuple) {
        Py_DECREF(tuple);
    }
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
#if CYTHON_COMPILING_IN_PYPY
bad:
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
#endif
}
static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2,
                                       int has_known_size, int decref_tuple) {
    Py_ssize_t index;
    PyObject *value1 = NULL, *value2 = NULL, *iter = NULL;
    iternextfunc iternext;
    iter = PyObject_GetIter(tuple);
    if (unlikely(!iter)) goto bad;
    if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; }
    iternext = Py_TYPE(iter)->tp_iternext;
    value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; }
    value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; }
    if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad;
    Py_DECREF(iter);
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
unpacking_failed:
    if (!has_known_size && __Pyx_IterFinish() == 0)
        __Pyx_RaiseNeedMoreValuesError(index);
bad:
    Py_XDECREF(iter);
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
}

/* dict_iter */
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_source_is_dict) {
    is_dict = is_dict || likely(PyDict_CheckExact(iterable));
    *p_source_is_dict = is_dict;
    if (is_dict) {
#if !CYTHON_COMPILING_IN_PYPY
        *p_orig_length = PyDict_Size(iterable);
        Py_INCREF(iterable);
        return iterable;
#elif PY_MAJOR_VERSION >= 3
        static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL;
        PyObject **pp = NULL;
        if (method_name) {
            const char *name = PyUnicode_AsUTF8(method_name);
            if (strcmp(name, "iteritems") == 0) pp = &py_items;
            else if (strcmp(name, "iterkeys") == 0) pp = &py_keys;
            else if (strcmp(name, "itervalues") == 0) pp = &py_values;
            if (pp) {
                if (!*pp) {
                    *pp = PyUnicode_FromString(name + 4);
                    if (!*pp)
                        return NULL;
                }
                method_name = *pp;
            }
        }
#endif
    }
    *p_orig_length = 0;
    if (method_name) {
        PyObject* iter;
        iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);
        if (!iterable)
            return NULL;
#if !CYTHON_COMPILING_IN_PYPY
        if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable))
            return iterable;
#endif
        iter = PyObject_GetIter(iterable);
        Py_DECREF(iterable);
        return iter;
    }
    return PyObject_GetIter(iterable);
}
static CYTHON_INLINE int __Pyx_dict_iter_next(
        PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,
        PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) {
    PyObject* next_item;
#if !CYTHON_COMPILING_IN_PYPY
    if (source_is_dict) {
        PyObject *key, *value;
        if (unlikely(orig_length != PyDict_Size(iter_obj))) {
            PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration");
            return -1;
        }
        if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) {
            return 0;
        }
        if (pitem) {
            PyObject* tuple = PyTuple_New(2);
            if (unlikely(!tuple)) {
                return -1;
            }
            Py_INCREF(key);
            Py_INCREF(value);
            PyTuple_SET_ITEM(tuple, 0, key);
            PyTuple_SET_ITEM(tuple, 1, value);
            *pitem = tuple;
        } else {
            if (pkey) {
                Py_INCREF(key);
                *pkey = key;
            }
            if (pvalue) {
                Py_INCREF(value);
                *pvalue = value;
            }
        }
        return 1;
    } else if (PyTuple_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0;
        *ppos = pos + 1;
        next_item = PyTuple_GET_ITEM(iter_obj, pos);
        Py_INCREF(next_item);
    } else if (PyList_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0;
        *ppos = pos + 1;
        next_item = PyList_GET_ITEM(iter_obj, pos);
        Py_INCREF(next_item);
    } else
#endif
    {
        next_item = PyIter_Next(iter_obj);
        if (unlikely(!next_item)) {
            return __Pyx_IterFinish();
        }
    }
    if (pitem) {
        *pitem = next_item;
    } else if (pkey && pvalue) {
        if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1))
            return -1;
    } else if (pkey) {
        *pkey = next_item;
    } else {
        *pvalue = next_item;
    }
    return 1;
}

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) {
    (void)inplace;
    (void)zerodivision_check;
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long x;
        long a = PyInt_AS_LONG(op1);
            x = (long)((unsigned long)a + b);
            if (likely((x^a) >= 0 || (x^b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_add(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        const digit* digits = ((PyLongObject*)op1)->ob_digit;
        const Py_ssize_t size = Py_SIZE(op1);
        if (likely(__Pyx_sst_abs(size) <= 1)) {
            a = likely(size) ? digits[0] : 0;
            if (size == -1) a = -a;
        } else {
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_add(op1, op2);
            }
        }
                x = a + b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla + llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
        double a = PyFloat_AS_DOUBLE(op1);
            double result;
            PyFPE_START_PROTECT("add", return NULL)
            result = ((double)a) + (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
}
#endif

/* GetTopmostException */
#if CYTHON_USE_EXC_INFO_STACK
static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
{
    _PyErr_StackItem *exc_info = tstate->exc_info;
    while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
           exc_info->previous_item != NULL)
    {
        exc_info = exc_info->previous_item;
    }
    return exc_info;
}
#endif

/* SaveResetException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    *type = exc_info->exc_type;
    *value = exc_info->exc_value;
    *tb = exc_info->exc_traceback;
    #else
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    #endif
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = type;
    exc_info->exc_value = value;
    exc_info->exc_traceback = tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
#endif

/* PyErrExceptionMatches */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
    PyObject *exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
    if (unlikely(PyTuple_Check(err)))
        return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
    return __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
}
#endif

/* GetException */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
#endif
{
    PyObject *local_type, *local_value, *local_tb;
#if CYTHON_FAST_THREAD_STATE
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    local_type = tstate->curexc_type;
    local_value = tstate->curexc_value;
    local_tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_FAST_THREAD_STATE
    if (unlikely(tstate->curexc_type))
#else
    if (unlikely(PyErr_Occurred()))
#endif
        goto bad;
    #if PY_MAJOR_VERSION >= 3
    if (local_tb) {
        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
            goto bad;
    }
    #endif
    Py_XINCREF(local_tb);
    Py_XINCREF(local_type);
    Py_XINCREF(local_value);
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
#if CYTHON_FAST_THREAD_STATE
    #if CYTHON_USE_EXC_INFO_STACK
    {
        _PyErr_StackItem *exc_info = tstate->exc_info;
        tmp_type = exc_info->exc_type;
        tmp_value = exc_info->exc_value;
        tmp_tb = exc_info->exc_traceback;
        exc_info->exc_type = local_type;
        exc_info->exc_value = local_value;
        exc_info->exc_traceback = local_tb;
    }
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = local_type;
    tstate->exc_value = local_value;
    tstate->exc_traceback = local_tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#else
    PyErr_SetExcInfo(local_type, local_value, local_tb);
#endif
    return 0;
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
}

/* SliceTupleAndList */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE void __Pyx_crop_slice(Py_ssize_t* _start, Py_ssize_t* _stop, Py_ssize_t* _length) {
    Py_ssize_t start = *_start, stop = *_stop, length = *_length;
    if (start < 0) {
        start += length;
        if (start < 0)
            start = 0;
    }
    if (stop < 0)
        stop += length;
    else if (stop > length)
        stop = length;
    *_length = stop - start;
    *_start = start;
    *_stop = stop;
}
static CYTHON_INLINE void __Pyx_copy_object_array(PyObject** CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
    PyObject *v;
    Py_ssize_t i;
    for (i = 0; i < length; i++) {
        v = dest[i] = src[i];
        Py_INCREF(v);
    }
}
static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice(
            PyObject* src, Py_ssize_t start, Py_ssize_t stop) {
    PyObject* dest;
    Py_ssize_t length = PyList_GET_SIZE(src);
    __Pyx_crop_slice(&start, &stop, &length);
    if (unlikely(length <= 0))
        return PyList_New(0);
    dest = PyList_New(length);
    if (unlikely(!dest))
        return NULL;
    __Pyx_copy_object_array(
        ((PyListObject*)src)->ob_item + start,
        ((PyListObject*)dest)->ob_item,
        length);
    return dest;
}
static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(
            PyObject* src, Py_ssize_t start, Py_ssize_t stop) {
    PyObject* dest;
    Py_ssize_t length = PyTuple_GET_SIZE(src);
    __Pyx_crop_slice(&start, &stop, &length);
    if (unlikely(length <= 0))
        return PyTuple_New(0);
    dest = PyTuple_New(length);
    if (unlikely(!dest))
        return NULL;
    __Pyx_copy_object_array(
        ((PyTupleObject*)src)->ob_item + start,
        ((PyTupleObject*)dest)->ob_item,
        length);
    return dest;
}
#endif

/* UnpackUnboundCMethod */
static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
    PyObject *method;
    method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
    if (unlikely(!method))
        return -1;
    target->method = method;
#if CYTHON_COMPILING_IN_CPYTHON
    #if PY_MAJOR_VERSION >= 3
    if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
    #endif
    {
        PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
        target->func = descr->d_method->ml_meth;
        target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
    }
#endif
    return 0;
}

/* CallUnboundCMethod0 */
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    PyObject *args, *result = NULL;
    if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_ASSUME_SAFE_MACROS
    args = PyTuple_New(1);
    if (unlikely(!args)) goto bad;
    Py_INCREF(self);
    PyTuple_SET_ITEM(args, 0, self);
#else
    args = PyTuple_Pack(1, self);
    if (unlikely(!args)) goto bad;
#endif
    result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
    Py_DECREF(args);
bad:
    return result;
}

/* py_dict_keys */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d) {
    if (PY_MAJOR_VERSION >= 3)
        return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_keys, d);
    else
        return PyDict_Keys(d);
}

/* PyNumberPow2 */
static PyObject* __Pyx__PyNumber_PowerOf2(PyObject *two, PyObject *exp, PyObject *none, int inplace) {
#if !CYTHON_COMPILING_IN_PYPY
    Py_ssize_t shiftby;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(exp))) {
        shiftby = PyInt_AS_LONG(exp);
    } else
#endif
    if (likely(PyLong_CheckExact(exp))) {
        #if CYTHON_USE_PYLONG_INTERNALS
        const Py_ssize_t size = Py_SIZE(exp);
        if (likely(size == 1)) {
            shiftby = ((PyLongObject*)exp)->ob_digit[0];
        } else if (size == 0) {
            return PyInt_FromLong(1L);
        } else if (unlikely(size < 0)) {
            goto fallback;
        } else {
            shiftby = PyLong_AsSsize_t(exp);
        }
        #else
        shiftby = PyLong_AsSsize_t(exp);
        #endif
    } else {
        goto fallback;
    }
    if (likely(shiftby >= 0)) {
        if ((size_t)shiftby <= sizeof(long) * 8 - 2) {
            long value = 1L << shiftby;
            return PyInt_FromLong(value);
#ifdef HAVE_LONG_LONG
        } else if ((size_t)shiftby <= sizeof(unsigned PY_LONG_LONG) * 8 - 1) {
            unsigned PY_LONG_LONG value = ((unsigned PY_LONG_LONG)1) << shiftby;
            return PyLong_FromUnsignedLongLong(value);
#endif
        } else {
            PyObject *result, *one = PyInt_FromLong(1L);
            if (unlikely(!one)) return NULL;
            result = PyNumber_Lshift(one, exp);
            Py_DECREF(one);
            return result;
        }
    } else if (shiftby == -1 && PyErr_Occurred()) {
        PyErr_Clear();
    }
fallback:
#endif
    return (inplace ? PyNumber_InPlacePower : PyNumber_Power)(two, exp, none);
}

/* SliceObject */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
        Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
        int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
#if CYTHON_USE_TYPE_SLOTS
    PyMappingMethods* mp;
#if PY_MAJOR_VERSION < 3
    PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
    if (likely(ms && ms->sq_slice)) {
        if (!has_cstart) {
            if (_py_start && (*_py_start != Py_None)) {
                cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
                if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
            } else
                cstart = 0;
        }
        if (!has_cstop) {
            if (_py_stop && (*_py_stop != Py_None)) {
                cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
                if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
            } else
                cstop = PY_SSIZE_T_MAX;
        }
        if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
            Py_ssize_t l = ms->sq_length(obj);
            if (likely(l >= 0)) {
                if (cstop < 0) {
                    cstop += l;
                    if (cstop < 0) cstop = 0;
                }
                if (cstart < 0) {
                    cstart += l;
                    if (cstart < 0) cstart = 0;
                }
            } else {
                if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                    goto bad;
                PyErr_Clear();
            }
        }
        return ms->sq_slice(obj, cstart, cstop);
    }
#endif
    mp = Py_TYPE(obj)->tp_as_mapping;
    if (likely(mp && mp->mp_subscript))
#endif
    {
        PyObject* result;
        PyObject *py_slice, *py_start, *py_stop;
        if (_py_slice) {
            py_slice = *_py_slice;
        } else {
            PyObject* owned_start = NULL;
            PyObject* owned_stop = NULL;
            if (_py_start) {
                py_start = *_py_start;
            } else {
                if (has_cstart) {
                    owned_start = py_start = PyInt_FromSsize_t(cstart);
                    if (unlikely(!py_start)) goto bad;
                } else
                    py_start = Py_None;
            }
            if (_py_stop) {
                py_stop = *_py_stop;
            } else {
                if (has_cstop) {
                    owned_stop = py_stop = PyInt_FromSsize_t(cstop);
                    if (unlikely(!py_stop)) {
                        Py_XDECREF(owned_start);
                        goto bad;
                    }
                } else
                    py_stop = Py_None;
            }
            py_slice = PySlice_New(py_start, py_stop, Py_None);
            Py_XDECREF(owned_start);
            Py_XDECREF(owned_stop);
            if (unlikely(!py_slice)) goto bad;
        }
#if CYTHON_USE_TYPE_SLOTS
        result = mp->mp_subscript(obj, py_slice);
#else
        result = PyObject_GetItem(obj, py_slice);
#endif
        if (!_py_slice) {
            Py_DECREF(py_slice);
        }
        return result;
    }
    PyErr_Format(PyExc_TypeError,
        "'%.200s' object is unsliceable", Py_TYPE(obj)->tp_name);
bad:
    return NULL;
}

/* PyIntCompare */
static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) {
    if (op1 == op2) {
        Py_RETURN_TRUE;
    }
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
        if (a == b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        int unequal;
        unsigned long uintval;
        Py_ssize_t size = Py_SIZE(op1);
        const digit* digits = ((PyLongObject*)op1)->ob_digit;
        if (intval == 0) {
            if (size == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
        } else if (intval < 0) {
            if (size >= 0)
                Py_RETURN_FALSE;
            intval = -intval;
            size = -size;
        } else {
            if (size <= 0)
                Py_RETURN_FALSE;
        }
        uintval = (unsigned long) intval;
#if PyLong_SHIFT * 4 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 4)) {
            unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 3 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 3)) {
            unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 2 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 2)) {
            unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 1 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 1)) {
            unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
            unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
        if (unequal == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
        double a = PyFloat_AS_DOUBLE(op1);
        if ((double)a == (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
    }
    return (
        PyObject_RichCompare(op1, op2, Py_EQ));
}

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
#if PY_MAJOR_VERSION < 3 || CYTHON_USE_PYLONG_INTERNALS
#define __Pyx_PyInt_RemainderObjC_ZeroDivisionError(operand)\
    if (unlikely(zerodivision_check && ((operand) == 0))) {\
        PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");\
        return NULL;\
    }
#endif
static PyObject* __Pyx_PyInt_RemainderObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) {
    (void)inplace;
    (void)zerodivision_check;
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long x;
        long a = PyInt_AS_LONG(op1);
            __Pyx_PyInt_RemainderObjC_ZeroDivisionError(b)
            x = a % b;
            x += ((x != 0) & ((x ^ b) < 0)) * b;
            return PyInt_FromLong(x);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        const digit* digits = ((PyLongObject*)op1)->ob_digit;
        const Py_ssize_t size = Py_SIZE(op1);
        if (likely(__Pyx_sst_abs(size) <= 1)) {
            a = likely(size) ? digits[0] : 0;
            if (size == -1) a = -a;
        } else {
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_remainder(op1, op2);
            }
        }
                __Pyx_PyInt_RemainderObjC_ZeroDivisionError(b)
                x = a % b;
                x += ((x != 0) & ((x ^ b) < 0)) * b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla % llb;
                llx += ((llx != 0) & ((llx ^ llb) < 0)) * llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    return (inplace ? PyNumber_InPlaceRemainder : PyNumber_Remainder)(op1, op2);
}
#endif

/* BytesEquals */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result;
#if CYTHON_USE_UNICODE_INTERNALS
            Py_hash_t hash1, hash2;
            hash1 = ((PyBytesObject*)s1)->ob_shash;
            hash2 = ((PyBytesObject*)s2)->ob_shash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                return (equals == Py_NE);
            }
#endif
            result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

/* UnicodeEquals */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
#if PY_MAJOR_VERSION < 3
    PyObject* owned_ref = NULL;
#endif
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
#if PY_MAJOR_VERSION < 3
    if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
        owned_ref = PyUnicode_FromObject(s2);
        if (unlikely(!owned_ref))
            return -1;
        s2 = owned_ref;
        s2_is_unicode = 1;
    } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
        owned_ref = PyUnicode_FromObject(s1);
        if (unlikely(!owned_ref))
            return -1;
        s1 = owned_ref;
        s1_is_unicode = 1;
    } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
        return __Pyx_PyBytes_Equals(s1, s2, equals);
    }
#endif
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length;
        int kind;
        void *data1, *data2;
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
            goto return_ne;
        }
#if CYTHON_USE_UNICODE_INTERNALS
        {
            Py_hash_t hash1, hash2;
        #if CYTHON_PEP393_ENABLED
            hash1 = ((PyASCIIObject*)s1)->hash;
            hash2 = ((PyASCIIObject*)s2)->hash;
        #else
            hash1 = ((PyUnicodeObject*)s1)->hash;
            hash2 = ((PyUnicodeObject*)s2)->hash;
        #endif
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                goto return_ne;
            }
        }
#endif
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            #if PY_MAJOR_VERSION < 3
            Py_XDECREF(owned_ref);
            #endif
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        #if PY_MAJOR_VERSION < 3
        Py_XDECREF(owned_ref);
        #endif
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_EQ);
return_ne:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_NE);
#endif
}

/* SetItemInt */
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {
    int r;
    if (!j) return -1;
    r = PyObject_SetItem(o, j, v);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list,
                                               CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o));
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) {
            PyObject* old = PyList_GET_ITEM(o, n);
            Py_INCREF(v);
            PyList_SET_ITEM(o, n, v);
            Py_DECREF(old);
            return 1;
        }
    } else {
        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
        if (likely(m && m->sq_ass_item)) {
            if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
                Py_ssize_t l = m->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return -1;
                    PyErr_Clear();
                }
            }
            return m->sq_ass_item(o, i, v);
        }
    }
#else
#if CYTHON_COMPILING_IN_PYPY
    if (is_list || (PySequence_Check(o) && !PyDict_Check(o)))
#else
    if (is_list || PySequence_Check(o))
#endif
    {
        return PySequence_SetItem(o, i, v);
    }
#endif
    return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v);
}

/* WriteUnraisableException */
static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename,
                                  int full_traceback, CYTHON_UNUSED int nogil) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __Pyx_PyThreadState_declare
#ifdef WITH_THREAD
    PyGILState_STATE state;
    if (nogil)
        state = PyGILState_Ensure();
#ifdef _MSC_VER
    else state = (PyGILState_STATE)-1;
#endif
#endif
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
    if (full_traceback) {
        Py_XINCREF(old_exc);
        Py_XINCREF(old_val);
        Py_XINCREF(old_tb);
        __Pyx_ErrRestore(old_exc, old_val, old_tb);
        PyErr_PrintEx(1);
    }
    #if PY_MAJOR_VERSION < 3
    ctx = PyString_FromString(name);
    #else
    ctx = PyUnicode_FromString(name);
    #endif
    __Pyx_ErrRestore(old_exc, old_val, old_tb);
    if (!ctx) {
        PyErr_WriteUnraisable(Py_None);
    } else {
        PyErr_WriteUnraisable(ctx);
        Py_DECREF(ctx);
    }
#ifdef WITH_THREAD
    if (nogil)
        PyGILState_Release(state);
#endif
}

/* TypeImport */
#ifndef __PYX_HAVE_RT_ImportType
#define __PYX_HAVE_RT_ImportType
static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name,
    size_t size, enum __Pyx_ImportType_CheckSize check_size)
{
    PyObject *result = 0;
    char warning[200];
    Py_ssize_t basicsize;
#ifdef Py_LIMITED_API
    PyObject *py_basicsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#ifndef Py_LIMITED_API
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
#else
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if ((size_t)basicsize < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn && (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",
            module_name, class_name, size, basicsize);
        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif

/* CalculateMetaclass */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
    Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases);
    for (i=0; i < nbases; i++) {
        PyTypeObject *tmptype;
        PyObject *tmp = PyTuple_GET_ITEM(bases, i);
        tmptype = Py_TYPE(tmp);
#if PY_MAJOR_VERSION < 3
        if (tmptype == &PyClass_Type)
            continue;
#endif
        if (!metaclass) {
            metaclass = tmptype;
            continue;
        }
        if (PyType_IsSubtype(metaclass, tmptype))
            continue;
        if (PyType_IsSubtype(tmptype, metaclass)) {
            metaclass = tmptype;
            continue;
        }
        PyErr_SetString(PyExc_TypeError,
                        "metaclass conflict: "
                        "the metaclass of a derived class "
                        "must be a (non-strict) subclass "
                        "of the metaclasses of all its bases");
        return NULL;
    }
    if (!metaclass) {
#if PY_MAJOR_VERSION < 3
        metaclass = &PyClass_Type;
#else
        metaclass = &PyType_Type;
#endif
    }
    Py_INCREF((PyObject*) metaclass);
    return (PyObject*) metaclass;
}

/* FetchCommonType */
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
    PyObject* fake_module;
    PyTypeObject* cached_type = NULL;
    fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI);
    if (!fake_module) return NULL;
    Py_INCREF(fake_module);
    cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name);
    if (cached_type) {
        if (!PyType_Check((PyObject*)cached_type)) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s is not a type object",
                type->tp_name);
            goto bad;
        }
        if (cached_type->tp_basicsize != type->tp_basicsize) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s has the wrong size, try recompiling",
                type->tp_name);
            goto bad;
        }
    } else {
        if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
        PyErr_Clear();
        if (PyType_Ready(type) < 0) goto bad;
        if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0)
            goto bad;
        Py_INCREF(type);
        cached_type = type;
    }
done:
    Py_DECREF(fake_module);
    return cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}

/* CythonFunctionShared */
#include <structmember.h>
static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure)
{
    if (unlikely(op->func_doc == NULL)) {
        if (op->func.m_ml->ml_doc) {
#if PY_MAJOR_VERSION >= 3
            op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc);
#else
            op->func_doc = PyString_FromString(op->func.m_ml->ml_doc);
#endif
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp = op->func_doc;
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    op->func_doc = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    if (unlikely(op->func_name == NULL)) {
#if PY_MAJOR_VERSION >= 3
        op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name);
#else
        op->func_name = PyString_InternFromString(op->func.m_ml->ml_name);
#endif
        if (unlikely(op->func_name == NULL))
            return NULL;
    }
    Py_INCREF(op->func_name);
    return op->func_name;
}
static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    tmp = op->func_name;
    Py_INCREF(value);
    op->func_name = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(op->func_qualname);
    return op->func_qualname;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    tmp = op->func_qualname;
    Py_INCREF(value);
    op->func_qualname = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure)
{
    PyObject *self;
    self = m->func_closure;
    if (self == NULL)
        self = Py_None;
    Py_INCREF(self);
    return self;
}
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    if (unlikely(op->func_dict == NULL)) {
        op->func_dict = PyDict_New();
        if (unlikely(op->func_dict == NULL))
            return NULL;
    }
    Py_INCREF(op->func_dict);
    return op->func_dict;
}
static int
__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
    if (unlikely(value == NULL)) {
        PyErr_SetString(PyExc_TypeError,
               "function's dictionary may not be deleted");
        return -1;
    }
    if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
               "setting function's dictionary to a non-dict");
        return -1;
    }
    tmp = op->func_dict;
    Py_INCREF(value);
    op->func_dict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
    int result = 0;
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
    Py_INCREF(op->defaults_tuple);
    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
    Py_INCREF(op->defaults_kwdict);
    #else
    op->defaults_tuple = PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = PySequence_ITEM(res, 1);
        if (unlikely(!op->defaults_kwdict)) result = -1;
    }
    #endif
    Py_DECREF(res);
    return result;
}
static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyTuple_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_tuple;
    op->defaults_tuple = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->defaults_tuple;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_tuple;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_kwdict;
    op->defaults_kwdict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->defaults_kwdict;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_kwdict;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value || value == Py_None) {
        value = NULL;
    } else if (!PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    tmp = op->func_annotations;
    op->func_annotations = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->func_annotations;
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyGetSetDef __pyx_CyFunction_getsets[] = {
    {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
    {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0},
    {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
    {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
    {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0},
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
{
#if PY_MAJOR_VERSION >= 3
    Py_INCREF(m->func_qualname);
    return m->func_qualname;
#else
    return PyString_FromString(m->func.m_ml->ml_name);
#endif
}
static PyMethodDef __pyx_CyFunction_methods[] = {
    {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
#if PY_VERSION_HEX < 0x030500A0
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist)
#endif
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
                                       PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    if (unlikely(op == NULL))
        return NULL;
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
    op->func.m_ml = ml;
    op->func.m_self = (PyObject *) op;
    Py_XINCREF(closure);
    op->func_closure = closure;
    Py_XINCREF(module);
    op->func.m_module = module;
    op->func_dict = NULL;
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
    op->func_classobj = NULL;
    op->func_globals = globals;
    Py_INCREF(op->func_globals);
    Py_XINCREF(code);
    op->func_code = code;
    op->defaults_pyobjects = 0;
    op->defaults_size = 0;
    op->defaults = NULL;
    op->defaults_tuple = NULL;
    op->defaults_kwdict = NULL;
    op->defaults_getter = NULL;
    op->func_annotations = NULL;
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
    Py_CLEAR(m->func.m_module);
    Py_CLEAR(m->func_dict);
    Py_CLEAR(m->func_name);
    Py_CLEAR(m->func_qualname);
    Py_CLEAR(m->func_doc);
    Py_CLEAR(m->func_globals);
    Py_CLEAR(m->func_code);
    Py_CLEAR(m->func_classobj);
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_XDECREF(pydefaults[i]);
        PyObject_Free(m->defaults);
        m->defaults = NULL;
    }
    return 0;
}
static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    if (__Pyx_CyFunction_weakreflist(m) != NULL)
        PyObject_ClearWeakRefs((PyObject *) m);
    __Pyx_CyFunction_clear(m);
    PyObject_GC_Del(m);
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    __Pyx__CyFunction_dealloc(m);
}
static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
{
    Py_VISIT(m->func_closure);
    Py_VISIT(m->func.m_module);
    Py_VISIT(m->func_dict);
    Py_VISIT(m->func_name);
    Py_VISIT(m->func_qualname);
    Py_VISIT(m->func_doc);
    Py_VISIT(m->func_globals);
    Py_VISIT(m->func_code);
    Py_VISIT(m->func_classobj);
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_VISIT(pydefaults[i]);
    }
    return 0;
}
static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type)
{
#if PY_MAJOR_VERSION < 3
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) {
        Py_INCREF(func);
        return func;
    }
    if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) {
        if (type == NULL)
            type = (PyObject *)(Py_TYPE(obj));
        return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type)));
    }
    if (obj == Py_None)
        obj = NULL;
#endif
    return __Pyx_PyMethod_New(func, obj, type);
}
static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromFormat("<cyfunction %U at %p>",
                                op->func_qualname, (void *)op);
#else
    return PyString_FromFormat("<cyfunction %s at %p>",
                               PyString_AsString(op->func_qualname), (void *)op);
#endif
}
static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    Py_ssize_t size;
    switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
    case METH_VARARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0))
            return (*meth)(self, arg);
        break;
    case METH_VARARGS | METH_KEYWORDS:
        return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw);
    case METH_NOARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 0))
                return (*meth)(self, NULL);
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 1)) {
                PyObject *result, *arg0;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                arg0 = PyTuple_GET_ITEM(arg, 0);
                #else
                arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
                #endif
                result = (*meth)(self, arg0);
                #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
                Py_DECREF(arg0);
                #endif
                return result;
            }
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags in "
                        "__Pyx_CyFunction_Call. METH_OLDARGS is no "
                        "longer supported!");
        return NULL;
    }
    PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
                 f->m_ml->ml_name);
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw);
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
        argc = PyTuple_GET_SIZE(args);
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
static PyTypeObject __pyx_CyFunctionType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
    (destructor) __Pyx_CyFunction_dealloc,
    0,
    0,
    0,
#if PY_MAJOR_VERSION < 3
    0,
#else
    0,
#endif
    (reprfunc) __Pyx_CyFunction_repr,
    0,
    0,
    0,
    0,
    __Pyx_CyFunction_CallAsMethod,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    0,
    (traverseproc) __Pyx_CyFunction_traverse,
    (inquiry) __Pyx_CyFunction_clear,
    0,
#if PY_VERSION_HEX < 0x030500A0
    offsetof(__pyx_CyFunctionObject, func_weakreflist),
#else
    offsetof(PyCFunctionObject, m_weakreflist),
#endif
    0,
    0,
    __pyx_CyFunction_methods,
    __pyx_CyFunction_members,
    __pyx_CyFunction_getsets,
    0,
    0,
    __Pyx_CyFunction_descr_get,
    0,
    offsetof(__pyx_CyFunctionObject, func_dict),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
    0,
#endif
#if PY_VERSION_HEX >= 0x030B00A2
    0,
#endif
};
static int __pyx_CyFunction_init(void) {
    __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
    if (unlikely(__pyx_CyFunctionType == NULL)) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_Malloc(size);
    if (unlikely(!m->defaults))
        return PyErr_NoMemory();
    memset(m->defaults, 0, size);
    m->defaults_pyobjects = pyobjects;
    m->defaults_size = size;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* CythonFunction */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    PyObject *op = __Pyx_CyFunction_Init(
        PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType),
        ml, flags, qualname, closure, module, globals, code
    );
    if (likely(op)) {
        PyObject_GC_Track(op);
    }
    return op;
}

/* Py3ClassCreate */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
                                           PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
    PyObject *ns;
    if (metaclass) {
        PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare);
        if (prep) {
            PyObject *pargs = PyTuple_Pack(2, name, bases);
            if (unlikely(!pargs)) {
                Py_DECREF(prep);
                return NULL;
            }
            ns = PyObject_Call(prep, pargs, mkw);
            Py_DECREF(prep);
            Py_DECREF(pargs);
        } else {
            if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError)))
                return NULL;
            PyErr_Clear();
            ns = PyDict_New();
        }
    } else {
        ns = PyDict_New();
    }
    if (unlikely(!ns))
        return NULL;
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad;
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad;
    if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad;
    return ns;
bad:
    Py_DECREF(ns);
    return NULL;
}
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
                                      PyObject *dict, PyObject *mkw,
                                      int calculate_metaclass, int allow_py2_metaclass) {
    PyObject *result, *margs;
    PyObject *owned_metaclass = NULL;
    if (allow_py2_metaclass) {
        owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass);
        if (owned_metaclass) {
            metaclass = owned_metaclass;
        } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
            PyErr_Clear();
        } else {
            return NULL;
        }
    }
    if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
        metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
        Py_XDECREF(owned_metaclass);
        if (unlikely(!metaclass))
            return NULL;
        owned_metaclass = metaclass;
    }
    margs = PyTuple_Pack(3, name, bases, dict);
    if (unlikely(!margs)) {
        result = NULL;
    } else {
        result = PyObject_Call(metaclass, margs, mkw);
        Py_DECREF(margs);
    }
    Py_XDECREF(owned_metaclass);
    return result;
}

/* Import */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
    PyObject *empty_list = 0;
    PyObject *module = 0;
    PyObject *global_dict = 0;
    PyObject *empty_dict = 0;
    PyObject *list;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_import;
    py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
    if (!py_import)
        goto bad;
    #endif
    if (from_list)
        list = from_list;
    else {
        empty_list = PyList_New(0);
        if (!empty_list)
            goto bad;
        list = empty_list;
    }
    global_dict = PyModule_GetDict(__pyx_m);
    if (!global_dict)
        goto bad;
    empty_dict = PyDict_New();
    if (!empty_dict)
        goto bad;
    {
        #if PY_MAJOR_VERSION >= 3
        if (level == -1) {
            if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
                module = PyImport_ImportModuleLevelObject(
                    name, global_dict, empty_dict, list, 1);
                if (!module) {
                    if (!PyErr_ExceptionMatches(PyExc_ImportError))
                        goto bad;
                    PyErr_Clear();
                }
            }
            level = 0;
        }
        #endif
        if (!module) {
            #if PY_MAJOR_VERSION < 3
            PyObject *py_level = PyInt_FromLong(level);
            if (!py_level)
                goto bad;
            module = PyObject_CallFunctionObjArgs(py_import,
                name, global_dict, empty_dict, list, py_level, (PyObject *)NULL);
            Py_DECREF(py_level);
            #else
            module = PyImport_ImportModuleLevelObject(
                name, global_dict, empty_dict, list, level);
            #endif
        }
    }
bad:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_import);
    #endif
    Py_XDECREF(empty_list);
    Py_XDECREF(empty_dict);
    return module;
}

/* ImportFrom */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Format(PyExc_ImportError,
        #if PY_MAJOR_VERSION < 3
            "cannot import name %.230s", PyString_AS_STRING(name));
        #else
            "cannot import name %S", name);
        #endif
    }
    return value;
}

/* PyObjectCallMethod1 */
static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
    PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);
    Py_DECREF(method);
    return result;
}
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
    PyObject *method = NULL, *result;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_Call2Args(method, obj, arg);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) return NULL;
    return __Pyx__PyObject_CallMethod1(method, arg);
}

/* append */
static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
    if (likely(PyList_CheckExact(L))) {
        if (unlikely(__Pyx_PyList_Append(L, x) < 0)) return -1;
    } else {
        PyObject* retval = __Pyx_PyObject_CallMethod1(L, __pyx_n_s_append, x);
        if (unlikely(!retval))
            return -1;
        Py_DECREF(retval);
    }
    return 0;
}

/* CLineInTraceback */
#ifndef CYTHON_CLINE_IN_TRACEBACK
static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) {
    PyObject *use_cline;
    PyObject *ptype, *pvalue, *ptraceback;
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject **cython_runtime_dict;
#endif
    if (unlikely(!__pyx_cython_runtime)) {
        return c_line;
    }
    __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
#if CYTHON_COMPILING_IN_CPYTHON
    cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
    if (likely(cython_runtime_dict)) {
        __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            use_cline, *cython_runtime_dict,
            __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
    } else
#endif
    {
      PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
      if (use_cline_obj) {
        use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
        Py_DECREF(use_cline_obj);
      } else {
        PyErr_Clear();
        use_cline = NULL;
      }
    }
    if (!use_cline) {
        c_line = 0;
        (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
    }
    else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
        c_line = 0;
    }
    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
    return c_line;
}
#endif

/* CodeObjectCache */
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = start + (end - start) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static PyCodeObject *__pyx_find_code_object(int code_line) {
    PyCodeObject* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = __pyx_code_cache.entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            __pyx_code_cache.entries = entries;
            __pyx_code_cache.max_count = 64;
            __pyx_code_cache.count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
        PyCodeObject* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_DECREF(tmp);
        return;
    }
    if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
        int new_max = __pyx_code_cache.max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        __pyx_code_cache.entries = entries;
        __pyx_code_cache.max_count = new_max;
    }
    for (i=__pyx_code_cache.count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    __pyx_code_cache.count++;
    Py_INCREF(code_object);
}

/* AddTraceback */
#include "compile.h"
#include "frameobject.h"
#include "traceback.h"
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = NULL;
    PyObject *py_funcname = NULL;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_srcfile = NULL;
    py_srcfile = PyString_FromString(filename);
    if (!py_srcfile) goto bad;
    #endif
    if (c_line) {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        #else
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        funcname = PyUnicode_AsUTF8(py_funcname);
        if (!funcname) goto bad;
        #endif
    }
    else {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromString(funcname);
        if (!py_funcname) goto bad;
        #endif
    }
    #if PY_MAJOR_VERSION < 3
    py_code = __Pyx_PyCode_New(
        0,
        0,
        0,
        0,
        0,
        __pyx_empty_bytes, /*PyObject *code,*/
        __pyx_empty_tuple, /*PyObject *consts,*/
        __pyx_empty_tuple, /*PyObject *names,*/
        __pyx_empty_tuple, /*PyObject *varnames,*/
        __pyx_empty_tuple, /*PyObject *freevars,*/
        __pyx_empty_tuple, /*PyObject *cellvars,*/
        py_srcfile,   /*PyObject *filename,*/
        py_funcname,  /*PyObject *name,*/
        py_line,
        __pyx_empty_bytes  /*PyObject *lnotab*/
    );
    Py_DECREF(py_srcfile);
    #else
    py_code = PyCode_NewEmpty(filename, funcname, py_line);
    #endif
    Py_XDECREF(py_funcname);  // XDECREF since it's only set on Py3 if cline
    return py_code;
bad:
    Py_XDECREF(py_funcname);
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_srcfile);
    #endif
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) goto bad;
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}

/* CIntFromPyVerify */
#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
    {\
        func_type value = func_value;\
        if (sizeof(target_type) < sizeof(func_type)) {\
            if (unlikely(value != (func_type) (target_type) value)) {\
                func_type zero = 0;\
                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
                    return (target_type) -1;\
                if (is_unsigned && unlikely(value < zero))\
                    goto raise_neg_overflow;\
                else\
                    goto raise_overflow;\
            }\
        }\
        return (target_type) value;\
    }

/* Declarations */
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
      return ::std::complex< float >(x, y);
    }
  #else
    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
      return x + y*(__pyx_t_float_complex)_Complex_I;
    }
  #endif
#else
    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
      __pyx_t_float_complex z;
      z.real = x;
      z.imag = y;
      return z;
    }
#endif

/* Arithmetic */
#if CYTHON_CCOMPLEX
#else
    static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
       return (a.real == b.real) && (a.imag == b.imag);
    }
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        __pyx_t_float_complex z;
        z.real = a.real + b.real;
        z.imag = a.imag + b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        __pyx_t_float_complex z;
        z.real = a.real - b.real;
        z.imag = a.imag - b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        __pyx_t_float_complex z;
        z.real = a.real * b.real - a.imag * b.imag;
        z.imag = a.real * b.imag + a.imag * b.real;
        return z;
    }
    #if 1
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        if (b.imag == 0) {
            return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else if (fabsf(b.real) >= fabsf(b.imag)) {
            if (b.real == 0 && b.imag == 0) {
                return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);
            } else {
                float r = b.imag / b.real;
                float s = (float)(1.0) / (b.real + b.imag * r);
                return __pyx_t_float_complex_from_parts(
                    (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
            }
        } else {
            float r = b.real / b.imag;
            float s = (float)(1.0) / (b.imag + b.real * r);
            return __pyx_t_float_complex_from_parts(
                (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
        }
    }
    #else
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        if (b.imag == 0) {
            return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else {
            float denom = b.real * b.real + b.imag * b.imag;
            return __pyx_t_float_complex_from_parts(
                (a.real * b.real + a.imag * b.imag) / denom,
                (a.imag * b.real - a.real * b.imag) / denom);
        }
    }
    #endif
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) {
        __pyx_t_float_complex z;
        z.real = -a.real;
        z.imag = -a.imag;
        return z;
    }
    static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) {
       return (a.real == 0) && (a.imag == 0);
    }
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {
        __pyx_t_float_complex z;
        z.real =  a.real;
        z.imag = -a.imag;
        return z;
    }
    #if 1
        static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) {
          #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
            return sqrtf(z.real*z.real + z.imag*z.imag);
          #else
            return hypotf(z.real, z.imag);
          #endif
        }
        static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
            __pyx_t_float_complex z;
            float r, lnr, theta, z_r, z_theta;
            if (b.imag == 0 && b.real == (int)b.real) {
                if (b.real < 0) {
                    float denom = a.real * a.real + a.imag * a.imag;
                    a.real = a.real / denom;
                    a.imag = -a.imag / denom;
                    b.real = -b.real;
                }
                switch ((int)b.real) {
                    case 0:
                        z.real = 1;
                        z.imag = 0;
                        return z;
                    case 1:
                        return a;
                    case 2:
                        return __Pyx_c_prod_float(a, a);
                    case 3:
                        z = __Pyx_c_prod_float(a, a);
                        return __Pyx_c_prod_float(z, a);
                    case 4:
                        z = __Pyx_c_prod_float(a, a);
                        return __Pyx_c_prod_float(z, z);
                }
            }
            if (a.imag == 0) {
                if (a.real == 0) {
                    return a;
                } else if (b.imag == 0) {
                    z.real = powf(a.real, b.real);
                    z.imag = 0;
                    return z;
                } else if (a.real > 0) {
                    r = a.real;
                    theta = 0;
                } else {
                    r = -a.real;
                    theta = atan2f(0.0, -1.0);
                }
            } else {
                r = __Pyx_c_abs_float(a);
                theta = atan2f(a.imag, a.real);
            }
            lnr = logf(r);
            z_r = expf(lnr * b.real - theta * b.imag);
            z_theta = theta * b.real + lnr * b.imag;
            z.real = z_r * cosf(z_theta);
            z.imag = z_r * sinf(z_theta);
            return z;
        }
    #endif
#endif

/* Declarations */
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
      return ::std::complex< double >(x, y);
    }
  #else
    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
      return x + y*(__pyx_t_double_complex)_Complex_I;
    }
  #endif
#else
    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
      __pyx_t_double_complex z;
      z.real = x;
      z.imag = y;
      return z;
    }
#endif

/* Arithmetic */
#if CYTHON_CCOMPLEX
#else
    static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
       return (a.real == b.real) && (a.imag == b.imag);
    }
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        __pyx_t_double_complex z;
        z.real = a.real + b.real;
        z.imag = a.imag + b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        __pyx_t_double_complex z;
        z.real = a.real - b.real;
        z.imag = a.imag - b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        __pyx_t_double_complex z;
        z.real = a.real * b.real - a.imag * b.imag;
        z.imag = a.real * b.imag + a.imag * b.real;
        return z;
    }
    #if 1
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        if (b.imag == 0) {
            return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else if (fabs(b.real) >= fabs(b.imag)) {
            if (b.real == 0 && b.imag == 0) {
                return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
            } else {
                double r = b.imag / b.real;
                double s = (double)(1.0) / (b.real + b.imag * r);
                return __pyx_t_double_complex_from_parts(
                    (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
            }
        } else {
            double r = b.real / b.imag;
            double s = (double)(1.0) / (b.imag + b.real * r);
            return __pyx_t_double_complex_from_parts(
                (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
        }
    }
    #else
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        if (b.imag == 0) {
            return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else {
            double denom = b.real * b.real + b.imag * b.imag;
            return __pyx_t_double_complex_from_parts(
                (a.real * b.real + a.imag * b.imag) / denom,
                (a.imag * b.real - a.real * b.imag) / denom);
        }
    }
    #endif
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) {
        __pyx_t_double_complex z;
        z.real = -a.real;
        z.imag = -a.imag;
        return z;
    }
    static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) {
       return (a.real == 0) && (a.imag == 0);
    }
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {
        __pyx_t_double_complex z;
        z.real =  a.real;
        z.imag = -a.imag;
        return z;
    }
    #if 1
        static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) {
          #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
            return sqrt(z.real*z.real + z.imag*z.imag);
          #else
            return hypot(z.real, z.imag);
          #endif
        }
        static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
            __pyx_t_double_complex z;
            double r, lnr, theta, z_r, z_theta;
            if (b.imag == 0 && b.real == (int)b.real) {
                if (b.real < 0) {
                    double denom = a.real * a.real + a.imag * a.imag;
                    a.real = a.real / denom;
                    a.imag = -a.imag / denom;
                    b.real = -b.real;
                }
                switch ((int)b.real) {
                    case 0:
                        z.real = 1;
                        z.imag = 0;
                        return z;
                    case 1:
                        return a;
                    case 2:
                        return __Pyx_c_prod_double(a, a);
                    case 3:
                        z = __Pyx_c_prod_double(a, a);
                        return __Pyx_c_prod_double(z, a);
                    case 4:
                        z = __Pyx_c_prod_double(a, a);
                        return __Pyx_c_prod_double(z, z);
                }
            }
            if (a.imag == 0) {
                if (a.real == 0) {
                    return a;
                } else if (b.imag == 0) {
                    z.real = pow(a.real, b.real);
                    z.imag = 0;
                    return z;
                } else if (a.real > 0) {
                    r = a.real;
                    theta = 0;
                } else {
                    r = -a.real;
                    theta = atan2(0.0, -1.0);
                }
            } else {
                r = __Pyx_c_abs_double(a);
                theta = atan2(a.imag, a.real);
            }
            lnr = log(r);
            z_r = exp(lnr * b.real - theta * b.imag);
            z_theta = theta * b.real + lnr * b.imag;
            z.real = z_r * cos(z_theta);
            z.imag = z_r * sin(z_theta);
            return z;
        }
    #endif
#endif

/* CIntFromPy */
static CYTHON_INLINE TA_RetCode __Pyx_PyInt_As_TA_RetCode(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const TA_RetCode neg_one = (TA_RetCode) -1, const_zero = (TA_RetCode) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(TA_RetCode) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(TA_RetCode, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (TA_RetCode) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (TA_RetCode) 0;
                case  1: __PYX_VERIFY_RETURN_INT(TA_RetCode, digit, digits[0])
                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 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;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            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))
#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))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (TA_RetCode) 0;
                case -1: __PYX_VERIFY_RETURN_INT(TA_RetCode, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(TA_RetCode,  digit, +digits[0])
                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 -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 -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;
            }
#endif
            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))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            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 one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            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:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to TA_RetCode");
    return (TA_RetCode) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to TA_RetCode");
    return (TA_RetCode) -1;
}

/* CIntFromPy */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(int) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case  1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0])
                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 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;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            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))
#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))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(int,  digit, +digits[0])
                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 -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 -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;
            }
#endif
            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))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            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 one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            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:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_RetCode(TA_RetCode value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const TA_RetCode neg_one = (TA_RetCode) -1, const_zero = (TA_RetCode) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(TA_RetCode) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(TA_RetCode) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(TA_RetCode) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(TA_RetCode) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(TA_RetCode) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(TA_RetCode),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
static CYTHON_INLINE TA_FuncUnstId __Pyx_PyInt_As_TA_FuncUnstId(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const TA_FuncUnstId neg_one = (TA_FuncUnstId) -1, const_zero = (TA_FuncUnstId) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(TA_FuncUnstId) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (TA_FuncUnstId) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (TA_FuncUnstId) 0;
                case  1: __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, digit, digits[0])
                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 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;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            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))
#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))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (TA_FuncUnstId) 0;
                case -1: __PYX_VERIFY_RETURN_INT(TA_FuncUnstId, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(TA_FuncUnstId,  digit, +digits[0])
                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 -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 -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;
            }
#endif
            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))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            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 one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            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:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to TA_FuncUnstId");
    return (TA_FuncUnstId) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to TA_FuncUnstId");
    return (TA_FuncUnstId) -1;
}

/* CIntFromPy */
static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(unsigned int) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(unsigned int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (unsigned int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned int) 0;
                case  1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, digits[0])
                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 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;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            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))
#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))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned int) 0;
                case -1: __PYX_VERIFY_RETURN_INT(unsigned int, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(unsigned int,  digit, +digits[0])
                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 -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 -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;
            }
#endif
            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))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            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 one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            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:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to unsigned int");
    return (unsigned int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to unsigned int");
    return (unsigned int) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(unsigned int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(unsigned int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
static CYTHON_INLINE TA_Compatibility __Pyx_PyInt_As_TA_Compatibility(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const TA_Compatibility neg_one = (TA_Compatibility) -1, const_zero = (TA_Compatibility) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(TA_Compatibility) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(TA_Compatibility, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (TA_Compatibility) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (TA_Compatibility) 0;
                case  1: __PYX_VERIFY_RETURN_INT(TA_Compatibility, digit, digits[0])
                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 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;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            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))
#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))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (TA_Compatibility) 0;
                case -1: __PYX_VERIFY_RETURN_INT(TA_Compatibility, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(TA_Compatibility,  digit, +digits[0])
                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 -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 -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;
            }
#endif
            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))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            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 one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            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:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to TA_Compatibility");
    return (TA_Compatibility) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to TA_Compatibility");
    return (TA_Compatibility) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
static CYTHON_INLINE TA_CandleSettingType __Pyx_PyInt_As_TA_CandleSettingType(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const TA_CandleSettingType neg_one = (TA_CandleSettingType) -1, const_zero = (TA_CandleSettingType) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(TA_CandleSettingType) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (TA_CandleSettingType) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (TA_CandleSettingType) 0;
                case  1: __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, digit, digits[0])
                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 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;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            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))
#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))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (TA_CandleSettingType) 0;
                case -1: __PYX_VERIFY_RETURN_INT(TA_CandleSettingType, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(TA_CandleSettingType,  digit, +digits[0])
                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 -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 -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;
            }
#endif
            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))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            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 one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            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:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to TA_CandleSettingType");
    return (TA_CandleSettingType) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to TA_CandleSettingType");
    return (TA_CandleSettingType) -1;
}

/* CIntFromPy */
static CYTHON_INLINE TA_RangeType __Pyx_PyInt_As_TA_RangeType(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const TA_RangeType neg_one = (TA_RangeType) -1, const_zero = (TA_RangeType) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(TA_RangeType) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(TA_RangeType, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (TA_RangeType) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (TA_RangeType) 0;
                case  1: __PYX_VERIFY_RETURN_INT(TA_RangeType, digit, digits[0])
                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 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;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            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))
#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))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (TA_RangeType) 0;
                case -1: __PYX_VERIFY_RETURN_INT(TA_RangeType, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(TA_RangeType,  digit, +digits[0])
                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 -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 -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;
            }
#endif
            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))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            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 one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            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:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to TA_RangeType");
    return (TA_RangeType) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to TA_RangeType");
    return (TA_RangeType) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInputParameterType value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const TA_OptInputParameterType neg_one = (TA_OptInputParameterType) -1, const_zero = (TA_OptInputParameterType) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(TA_OptInputParameterType) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(TA_OptInputParameterType) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(TA_OptInputParameterType) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(TA_OptInputParameterType) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(TA_OptInputParameterType) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(TA_OptInputParameterType),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_FuncFlags(TA_FuncFlags value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const TA_FuncFlags neg_one = (TA_FuncFlags) -1, const_zero = (TA_FuncFlags) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(TA_FuncFlags) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(TA_FuncFlags) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(TA_FuncFlags) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(TA_FuncFlags) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(TA_FuncFlags) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(TA_FuncFlags),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_InputFlags(TA_InputFlags value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const TA_InputFlags neg_one = (TA_InputFlags) -1, const_zero = (TA_InputFlags) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(TA_InputFlags) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(TA_InputFlags) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(TA_InputFlags) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(TA_InputFlags) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(TA_InputFlags) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(TA_InputFlags),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TA_OutputFlags(TA_OutputFlags value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const TA_OutputFlags neg_one = (TA_OutputFlags) -1, const_zero = (TA_OutputFlags) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(TA_OutputFlags) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(TA_OutputFlags) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(TA_OutputFlags) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(TA_OutputFlags) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(TA_OutputFlags) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(TA_OutputFlags),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(long) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (long) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case  1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0])
                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 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;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            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))
#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))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(long,  digit, +digits[0])
                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 -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 -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;
            }
#endif
            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))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            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 one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            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:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

/* FastTypeChecks */
#if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
    while (a) {
        a = a->tp_base;
        if (a == b)
            return 1;
    }
    return b == &PyBaseObject_Type;
}
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (a == b) return 1;
    mro = a->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(a, b);
}
#if PY_MAJOR_VERSION == 2
static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
    PyObject *exception, *value, *tb;
    int res;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&exception, &value, &tb);
    res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
    if (unlikely(res == -1)) {
        PyErr_WriteUnraisable(err);
        res = 0;
    }
    if (!res) {
        res = PyObject_IsSubclass(err, exc_type2);
        if (unlikely(res == -1)) {
            PyErr_WriteUnraisable(err);
            res = 0;
        }
    }
    __Pyx_ErrRestore(exception, value, tb);
    return res;
}
#else
static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
    int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0;
    if (!res) {
        res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
    }
    return res;
}
#endif
static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    assert(PyExceptionClass_Check(exc_type));
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        PyObject *t = PyTuple_GET_ITEM(tuple, i);
        #if PY_MAJOR_VERSION < 3
        if (likely(exc_type == t)) return 1;
        #endif
        if (likely(PyExceptionClass_Check(t))) {
            if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
        } else {
        }
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
    if (likely(err == exc_type)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        if (likely(PyExceptionClass_Check(exc_type))) {
            return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
        } else if (likely(PyTuple_Check(exc_type))) {
            return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
        } else {
        }
    }
    return PyErr_GivenExceptionMatches(err, exc_type);
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
    assert(PyExceptionClass_Check(exc_type1));
    assert(PyExceptionClass_Check(exc_type2));
    if (likely(err == exc_type1 || err == exc_type2)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
    }
    return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
}
#endif

/* CheckBinaryVersion */
static int __Pyx_check_binary_version(void) {
    char ctversion[4], rtversion[4];
    PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
    PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
    if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compiletime version %s of module '%.100s' "
                      "does not match runtime version %s",
                      ctversion, __Pyx_MODULE_NAME, rtversion);
        return PyErr_WarnEx(NULL, message, 1);
    }
    return 0;
}

/* InitStrings */
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
    while (t->p) {
        #if PY_MAJOR_VERSION < 3
        if (t->is_unicode) {
            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
        } else if (t->intern) {
            *t->p = PyString_InternFromString(t->s);
        } else {
            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
        }
        #else
        if (t->is_unicode | t->is_str) {
            if (t->intern) {
                *t->p = PyUnicode_InternFromString(t->s);
            } else if (t->encoding) {
                *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
            } else {
                *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
            }
        } else {
            *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
        }
        #endif
        if (!*t->p)
            return -1;
        if (PyObject_Hash(*t->p) == -1)
            return -1;
        ++t;
    }
    return 0;
}

static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
}
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
#if !CYTHON_PEP393_ENABLED
static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    char* defenc_c;
    PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
    if (!defenc) return NULL;
    defenc_c = PyBytes_AS_STRING(defenc);
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    {
        char* end = defenc_c + PyBytes_GET_SIZE(defenc);
        char* c;
        for (c = defenc_c; c < end; c++) {
            if ((unsigned char) (*c) >= 128) {
                PyUnicode_AsASCIIString(o);
                return NULL;
            }
        }
    }
#endif
    *length = PyBytes_GET_SIZE(defenc);
    return defenc_c;
}
#else
static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    if (likely(PyUnicode_IS_ASCII(o))) {
        *length = PyUnicode_GET_LENGTH(o);
        return PyUnicode_AsUTF8(o);
    } else {
        PyUnicode_AsASCIIString(o);
        return NULL;
    }
#else
    return PyUnicode_AsUTF8AndSize(o, length);
#endif
}
#endif
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
    if (
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
            __Pyx_sys_getdefaultencoding_not_ascii &&
#endif
            PyUnicode_Check(o)) {
        return __Pyx_PyUnicode_AsStringAndSize(o, length);
    } else
#endif
#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
    if (PyByteArray_Check(o)) {
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
    } else
#endif
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
    int retval;
    if (unlikely(!x)) return -1;
    retval = __Pyx_PyObject_IsTrue(x);
    Py_DECREF(x);
    return retval;
}
static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
#if PY_MAJOR_VERSION >= 3
    if (PyLong_Check(result)) {
        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                "__int__ returned non-int (type %.200s).  "
                "The ability to return an instance of a strict subclass of int "
                "is deprecated, and may be removed in a future version of Python.",
                Py_TYPE(result)->tp_name)) {
            Py_DECREF(result);
            return NULL;
        }
        return result;
    }
#endif
    PyErr_Format(PyExc_TypeError,
                 "__%.4s__ returned non-%.4s (type %.200s)",
                 type_name, type_name, Py_TYPE(result)->tp_name);
    Py_DECREF(result);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
#if CYTHON_USE_TYPE_SLOTS
  PyNumberMethods *m;
#endif
  const char *name = NULL;
  PyObject *res = NULL;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_Check(x) || PyLong_Check(x)))
#else
  if (likely(PyLong_Check(x)))
#endif
    return __Pyx_NewRef(x);
#if CYTHON_USE_TYPE_SLOTS
  m = Py_TYPE(x)->tp_as_number;
  #if PY_MAJOR_VERSION < 3
  if (m && m->nb_int) {
    name = "int";
    res = m->nb_int(x);
  }
  else if (m && m->nb_long) {
    name = "long";
    res = m->nb_long(x);
  }
  #else
  if (likely(m && m->nb_int)) {
    name = "int";
    res = m->nb_int(x);
  }
  #endif
#else
  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
    res = PyNumber_Int(x);
  }
#endif
  if (likely(res)) {
#if PY_MAJOR_VERSION < 3
    if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
#else
    if (unlikely(!PyLong_CheckExact(res))) {
#endif
        return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
    }
  }
  else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_TypeError,
                    "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_CheckExact(b))) {
    if (sizeof(Py_ssize_t) >= sizeof(long))
        return PyInt_AS_LONG(b);
    else
        return PyInt_AsSsize_t(b);
  }
#endif
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_USE_PYLONG_INTERNALS
    const digit* digits = ((PyLongObject*)b)->ob_digit;
    const Py_ssize_t size = Py_SIZE(b);
    if (likely(__Pyx_sst_abs(size) <= 1)) {
        ival = likely(size) ? digits[0] : 0;
        if (size == -1) ival = -ival;
        return ival;
    } else {
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyInt_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
    return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
#if PY_MAJOR_VERSION < 3
  } else if (likely(PyInt_CheckExact(o))) {
    return PyInt_AS_LONG(o);
#endif
  } else {
    Py_ssize_t ival;
    PyObject *x;
    x = PyNumber_Index(o);
    if (!x) return -1;
    ival = PyInt_AsLong(x);
    Py_DECREF(x);
    return ival;
  }
}
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
  return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
    return PyInt_FromSize_t(ival);
}


#endif /* Py_PYTHON_H */
